gpt4 book ai didi

java - 无法让 Ant 运行我的 JUnit 测试

转载 作者:行者123 更新时间:2023-12-01 05:00:09 25 4
gpt4 key购买 nike

我创建了一个 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>

编译工作正常,我的所有类都在 ${build} 指向的文件夹中。我假设这个 ${build} 将是我的 JUnit 测试用例的类路径。然后我有一个测试目标,我想运行一个名为 BinarySearchTest 的 JUnit 测试。当我运行这个时,我得到一个简单的错误

Test BinarySearchTest FAILED

我知道我的单元测试没问题,因为它什么也没测试。

public class BinarySearchTest extends TestCase
{
public void test()
{
}
}

即使我将以下内容放入测试目标中,我仍然会遇到相同的错误

<test name="AtestThatDoesNotExistTest" />

结果=

Test AtestThatDoesNotExistTest FAILED

我预计会出现 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秒

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

最佳答案

你可以尝试一下

    <classpath>
<pathelement path="${basedir}\..\SwaCore\lib\junit.jar"/>
<pathelement path="${build}"/>
</classpath>

而不是

    <classpath>
<pathelement path="${basedir}\..\SwaCore\lib\junit.jar"/>
</classpath>
<classpath>
<pathelement path="${build}"/>
</classpath>

关于java - 无法让 Ant 运行我的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com