问题描述
我正在将 JUnit 测试自动化到我的 Ant 构建中.但是,我的简单测试仅在从 IDE 和命令行运行时通过,但在 Ant 的 <junit>
任务中失败.当我从命令行运行它时(我在技术上使用 Ant <exec>
任务),结果是:
I am automating my JUnit tests into my Ant build. However, my simple test only passes when run from the IDE and commandline but fails with Ant's <junit>
task. When I run it from the commandline (I am technically using the Ant <exec>
task) the result is:
clean:
compile_tests:
[javac] Compiling 2 source files to C:\MY_TEMP
junit_exec:
[exec] JUnit version 4.10
[exec] .
[exec] Time: 0.004
[exec]
[exec] OK (1 test)
[exec]
BUILD SUCCESSFUL
Total time: 1 second
但是当我使用 任务时:
but when I use the <junit>
task:
Buildfile: C:\MY_TEMP\build.xml
clean:
compile_tests:
[javac] Compiling 2 source files to C:\MY_TEMP
junit_ant:
[echo] junit_ant started
[junit] Test SimpleTest FAILED
BUILD SUCCESSFUL
Total time: 0 seconds
MY_TEMP
的内容为junit-4.10.jar
、SimpleTest.java
、build.xml
.
我已将 junit-4.10.jar
复制到 %ANT_HOME%\lib
文件夹,如 Ant junit 任务文档.它已经有 ant-junit.jar
和 ant-junit4.jar
.
I have copied junit-4.10.jar
to the %ANT_HOME%\lib
folder as suggest by the Ant junit task documentation. It already had both ant-junit.jar
and ant-junit4.jar
.
我的 Java 版本是 1.6.0_26.
My version of Java is 1.6.0_26.
我的测试是:
// YES, this is the default package
import org.junit.*;
public class SimpleTest {
@Test
public void mySimpleTest(){
Assert.assertEquals( 2, 1 + 1 );
}
}
我的 Ant 文件(build.xml)是:
And my Ant file (build.xml ), is:
<?xml version="1.0"?>
<project name="regression_tests" basedir=".">
<target name="clean">
<delete>
<fileset dir="." includes="*.class" />
</delete>
</target>
<target name="compile_tests" depends="clean">
<javac srcdir="." destdir="." source="1.6" target="1.6" includeantruntime="false" >
<classpath>
<pathelement location="./junit-4.10.jar" />
</classpath>
</javac>
</target>
<target name="junit_ant" depends="compile_tests" >
<echo message="junit_ant started" />
<junit>
<test name="SimpleTest" />
</junit>
</target>
<target name="junit_exec" depends="compile_tests">
<exec executable="java" dir="." >
<arg value="-classpath" />
<arg value=".;junit-4.10.jar" />
<arg value="org.junit.runner.JUnitCore" />
<arg value="SimpleTest" />
</exec>
</target>
</project>
推荐答案
如果测试通过一种方式而另一种方式失败,则很可能与类路径相关,例如找不到测试类、正在测试的类,或图书馆.
If a test passes one way, and fails another, it's likely something classpath-related, like it can't find a test class, a class under test, or a library.
测试输出应该有助于澄清这是否是问题所在.
The test output should help clarify if this is what the issue is.
这篇关于JUnit 测试在 Ant 中使用 `<junit>` 任务失败,但通过 `<exec>`?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!