简体   繁体   English

错误:软件包org.junit不存在

[英]error: package org.junit does not exist

I keep getting these errors when i am trying to run my ant file. 当我尝试运行我的ant文件时,我不断收到这些错误。

  [javac] Compiling 8 source files to C:\\Users\\FaradaysCage\\git\\mancala\\build [javac] C:\\Users\\FaradaysCage\\git\\mancala\\src\\tests\\BoardDataTest.java:1: error: package org.junit does not exist [javac] import static org.junit.Assert.assertEquals; [javac] ^ [javac] C:\\Users\\FaradaysCage\\git\\mancala\\src\\tests\\BoardDataTest.java:1: error: static import only from classes and interfaces [javac] import static org.junit.Assert.assertEquals; [javac] ^ [javac] C:\\Users\\FaradaysCage\\git\\mancala\\src\\tests\\BoardDataTest.java:2: error: package org.junit does not exist [javac] import org.junit.Test; [javac] ^ [javac] C:\\Users\\FaradaysCage\\git\\mancala\\src\\tests\\BoardDataTest.java:8: error: cannot find symbol [javac] @Test 

This is my ant build file 这是我的蚂蚁构建文件

<project name="Mancala" default="fullBuild" basedir=".">
    <description>
    Build file for Mancala program. Currently handles compilation
    and distribution. Will also include automated testing and
    generation of documentation.
  </description>
    <!-- set global properties for this build -->
    <property name="src" location="src" />
    <property name="build" location="build" />
    <property name="build.test" location="build/tests" />
    <property name="dist" location="dist" />
    <property name="test" location="src/tests" />
    <property name="docs" location="docs" />
    <property name="test.report" location="testreport" />

    <!-- Define the classpath which includes the junit.jar-->
    <!-- and the classes after compiling-->
    <path id="junit.class.path">
        <pathelement location="lib/junit-4.11.jar" />
        <pathelement location="lib/hamcrest-core-1.3.jar" />
        <pathelement location="${build}" />
    </path>

    <target name="init">
        <!-- Create the time stamp -->
        <tstamp />
        <!-- Create the build directory structure used by compile -->
        <mkdir dir="${build}" />
        <!-- Create the testreport directory used by Junit -->
        <mkdir dir="${test.report}" />
        <!-- Create the build.test directory used by compile & Junit -->
        <mkdir dir="${build.test}" />
    </target>

    <target name="compile" depends="init" description="compile the source">
        <!-- Compile the java code from ${src} into ${build} -->
        <javac srcdir="${src}" destdir="${build}" />
        <javac srcdir="${test}" destdir="${build.test}" />
    </target>

    <!-- Run the JUnit Tests -->
    <!-- Output is XML, could also be plain-->
    <target name="junit" depends="compile">
        <junit printsummary="on" fork="true" haltonfailure="yes">
            <classpath>
                <classpath refid="junit.class.path" />
                <pathelement location="${build.test}" />
                <formatter type="plain" />
                <batchtest todir="${test.report}">
                    <fileset dir="${test}">
                        <include name="**/*Test*.java" />
                    </fileset>
                </batchtest>
            </classpath>
        </junit>
    </target>

    <target name="doc" description="generate documentation">
        <mkdir dir="${docs}" />
        <javadoc sourcepath="${src}" destdir="${docs}">
            <fileset dir="${src}" />
        </javadoc>
    </target>

    <target name="dist" depends="compile" description="generate the distribution">
        <!-- Create the distribution directory -->
        <mkdir dir="${dist}/lib" />

        <!-- Put everything in ${build} into the Mancala-${DSTAMP}.jar file -->
        <jar jarfile="${dist}/lib/Mancala-${DSTAMP}.jar" basedir="${build}" />
    </target>

    <!-- Runs the compiled application -->
    <target name="run" depends="compile">
        <java classname="MancalaApp">
            <classpath>
                <pathelement location="${build}" />
            </classpath>
        </java>
    </target>

    <!--Add unit tests to build once implemented-->
    <target name="fullBuild" depends="dist, doc, junit" description="create application, docs, and tests">
    </target>

    <target name="clean" description="clean up">
        <!-- Delete the ${build} and ${dist} directory trees -->
        <delete dir="${build}" />
        <delete dir="${dist}" />
        <delete dir="${docs}" />
        <delete dir="${build.test}" />
        <delete dir="${test.report}" />
    </target>
</project>

I know that somehow I am not including junit.jar into my build, but it should be being included because of in my path id, and I am at my wits end about what is wrong. 我知道我不以某种方式不将junit.jar包含到我的构建中,但是应该将其包含在内,因为它包含在我的路径ID中,并且我不知所措地想出什么地方出了问题。

Thank you in advance 先感谢您

The <javac> task that creates the tests needs a classpath: 创建测试的<javac>任务需要一个类路径:

<javac srcdir="${test}" destdir="${build.test}" classpathref="junit.class.path" />

By the way, the following doesn't look right: 顺便说一句,以下内容看起来不正确:

<junit printsummary="on" fork="true" haltonfailure="yes">
    <classpath>
        <classpath refid="junit.class.path" />
        <pathelement location="${build.test}" />
        <formatter type="plain" />
        <batchtest todir="${test.report}">
            <fileset dir="${test}">
                <include name="**/*Test*.java" />
            </fileset>
        </batchtest>
    </classpath>
</junit>

The <formatter> and <batchtest> elements shouldn't be nested under a <classpath> . <formatter><batchtest>元素不应嵌套在<classpath> They should be directly under <junit> . 它们应直接位于<junit> It should be more like: 应该更像是:

<junit printsummary="on" fork="true" haltonfailure="yes">
    <classpath>
        <classpath refid="junit.class.path" />
        <pathelement location="${build.test}" />
    </classpath>
    <formatter type="plain" />
    <batchtest todir="${test.report}">
        <fileset dir="${test}">
            <include name="**/*Test*.java" />
        </fileset>
    </batchtest>
</junit>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM