Java 无法让Ant运行我的JUnit测试

Java 无法让Ant运行我的JUnit测试,java,ant,junit,Java,Ant,Junit,我已经创建了一个Ant目标来编译我的代码 <target name="test" depends="compile"> <junit> <classpath> <pathelement path="${basedir}\..\SwaCore\lib\junit.jar"/> </classpath> <classpath>

我已经创建了一个Ant目标来编译我的代码

<target name="test" depends="compile">
    <junit>
        <classpath>
            <pathelement path="${basedir}\..\SwaCore\lib\junit.jar"/>
        </classpath>
        <classpath>
            <pathelement path="${build}"/>
        </classpath>
        <test name="BinarySearchTest" />
    </junit>
</target>

<target name="compile">
    <mkdir dir="${build}"/>
    <javac
        srcdir="${basedir}\src;${basedir}\..\SwaCore\src;${basedir}\..\SwaShared\src;${basedir}\..\SwaDictionary\src;${basedir}\..\SwaSuggestion\src;${basedir}\..\SwaServerSharedCore\src;${basedir}\..\SwaPrediction\src;"
        destdir="${build}"
        debug="true"
        debuglevel="lines,vars,source">
        <classpath>
            <pathelement path="${basedir}\..\SwaCore\lib\junit.jar"/>
            <pathelement path="${basedir}\..\SwaSuggestion\lib\ssce.jar"/>
            <pathelement path="C:\Java\javamail-1.4.1\mail.jar"/>
            <pathelement path="C:\Java\commons-net-2.0\commons-net-ftp-2.0.jar"/>
            <pathelement path="${basedir}\WebContent\WEB-INF\lib\gson-2.2.1.jar"/>
            <pathelement path="${tomcatLibs}\servlet-api.jar"/>
        </classpath>
    </javac>
</target>
我知道我的单元测试还可以,因为它什么都不测试

public class BinarySearchTest extends TestCase
{
    public void test()
    {       
    }
}
即使我在测试目标中加入了以下内容,我仍然会得到相同的错误

<test name="AtestThatDoesNotExistTest" />
我本以为会出现classNotFound错误,所以我的Ant XML显然有一些根本性的问题

JUnit jar被正常拾取,因为如果它不在类路径中,我将得到错误

The <classpath> for <junit> must include junit.jar if not in Ant's own classpath
更新 我修改了我的目标,包括

        <formatter type="brief" usefile="false" />
        <test name="com.swaserver.junit.BinarySearchTest" />

test:
[junit] Testsuite: com.swaserver.junit.BinarySearchTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.878 sec
[junit] ------------- Standard Output ---------------
[junit] Initializing Binary search class
[junit] Binary search class initialized
[junit] ------------- ---------------- ---------------
建设成功 总时间:2秒

现在我可以看到我的测试实际上正在运行。但是,除非为单元测试指定完全限定的类名,否则找不到类。为什么会这样

你可以试试

而不是


使用verbose-v运行或从junit获得详细的输出,这将更准确地告诉您发生了哪些异常。您能否以某种方式获得一些stacktrace查看原始问题Updated好了,这个问题已经解决了:无论在何处引用类,都必须使用类的全名。对于主类java com.mypackage.MyClass,对于测试类,对于持久性类,对于…这很好,只是认为必须指定全名有点冗长,尝试了相同的结果:${build}不是一个pathelement,而是一个路径,请尝试:
The <classpath> for <junit> must include junit.jar if not in Ant's own classpath
        <formatter type="brief" usefile="false" />
        <test name="com.swaserver.junit.BinarySearchTest" />

test:
[junit] Testsuite: com.swaserver.junit.BinarySearchTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.878 sec
[junit] ------------- Standard Output ---------------
[junit] Initializing Binary search class
[junit] Binary search class initialized
[junit] ------------- ---------------- ---------------