2
我在Windows XP的命令行上使用Ant运行JUnit测试。JUnit失败,但没有测试报告失败
在某些运行中,通过运行所有测试,我会得到一条指向特定测试类的消息,但是该类中的所有测试都报告为已在控制台输出和XML文件。
该类不包含非确定性,不应该有任何副作用。没有理由会导致内存不足。
什么会导致这些奇怪的构建失败?
更新:
我怀疑这会有所帮助,但这里是运行结束时,它失败(匿名修改后的目录和包名):
C:\proj\er20\rr> ant clean build test
<snip/>
[junit] Running com.example.PathUTest
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 7.5 sec
BUILD FAILED
C:\proj\er20\common\build.xml:385: The following error occurred while executing this line:
C:\proj\er20\rr\build.xml:58: Test com.example.PathUTest failed
更新2:
我终于设法使-verbose启用失败。这里是(手抄的)堆栈跟踪:
BUILD FAILED
C:\proj\er20\common\build.xml:385: The following error occurred while executing this line:
C:\proj\er20\rr\build.xml:58: Test com.example.PathUTest failed
at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:541)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:418)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.Main.runBuild(Main.java:698)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: C:\proj\er20\rr\build.xml:58: Test com.example.PathUTest failed
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.actOnTestResult(JUnitTask.java:1712)
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.execute(JUnitTask.java:820)
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.executeOrQueue(JUnitTask.java:1657)
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.execute(JUnitTask.java:764)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
... 17 more
--- Nested Exception ---
C:\proj\er20\rr\build.xml:58 Test com.example.PathUTest failed
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.actOnTestResult(JUnitTask.java:1712)
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.execute(JUnitTask.java:820)
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.executeOrQueue(JUnitTask.java:1657)
at org.apache.tools.ant.taskdefs.optionl.junit.JUnitTask.execute(JUnitTask.java:764)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.perform(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
at org.apache.tools.ant.tskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor4.invoke(Source Unknown)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.Main.runBuild(Main.java:698)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Total time: 1 minute 27 seconds
这里是相关的Ant目标:
<target name="test">
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="../buildsupport/lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<!-- line 58 is the next line -->
<junit printsummary="yes" fork="yes" haltonfailure="yes" dir="${test-dir}" showoutput="yes">
<jvmarg value="-Xmx10200M"/>
<jvmarg value="-Xms600M"/>
<jvmarg value="-server"/>
<jvmarg value="-Dlog4j.configuration=file:log4j.xml"/>
<jvmarg value="-XX:CompileCommand=exclude,com.example.GtaCore,expandLabel"/>
<env key="LD_LIBRARY_PATH" path="${env.LD_LIBRARY_PATH}:${test-dir}/native_lib"/>
<jvmarg value="-Djava.library.path=./native_lib"/>
<formatter type="xml"/>
<classpath>
<!-- classpath items -->
</classpath>
<batchtest>
<fileset includes="**/*Test.class" excludes="**/*$$*.class"/>
</batchtest>
</junit>
<junitreport>
<!-- config -->
</junitreport>
<echo> finished suite</echo>
</target>
可能的原因和解决方法
我们发现,在内心深处在我们调用的代码中,正在显示一个在另一个线程中运行的错误调试GUI。由于禁用此GUI的显示,我们还没有看到这个问题。
后的记录错误的一大块。 – Argyle 2011-12-13 19:33:13
这些*建立*失败或*测试*失败你看到? – 2011-12-13 19:38:05