我已经创建了一个运行JUnit 4测试的Ant目标。不幸的是,它们都被执行了两次!
有谁知道我做错了什么吗?
以下是我的蚂蚁目标:
<target name="junit" description="Execute unit tests" depends="compile">
<delete dir="rawtestoutput"/>
<delete dir="test-reports"/>
<mkdir dir="rawtestoutput"/>
<junit printsummary="on" failureproperty="junit.failure" fork="true">
<classpath refid="class.path.junit"/>
<formatter type="xml" usefile="true" />
<batchtest todir="rawtestoutput">
<fileset dir="src/test">
<include name="**/*.java"/>
<!-- Add util and testhelper classes here (to avoid "No tests in class" error) and add suite classes to avoid test being run twice -->
<exclude name="**/SessionHelper.java"/>
<exclude name="**/TestHelper.java"/>
<exclude name="**/AllTests.java"/>
<exclude name="**/AllEDITests.java"/>
</fileset>
</batchtest>
</junit>
<junitreport>
<fileset dir="rawtestoutput"/>
<report todir="test-reports"/>
</junitreport>
<fail if="junit.failure" message="Unit test(s) failed. See reports!"/>
</target>我的第一个想法是,这是因为测试套件。但我不再这么认为了。我已经排除了测试套件,而且,它不仅是运行两次的套件的一部分。这是我所有的测试。
下面是我的一个testsclasses的测试输出的一个小示例:
[20:24:53]: [junit] Running dk.gensam.gaia.business.ydelse.YdelsestypeBOTest
[20:24:53]: [junit] dk.gensam.gaia.business.ydelse.YdelsestypeBOTest (2s)
[20:24:54]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsevariationer
[20:24:55]: [loadYdelsevariationer] [Test Output] EMMA: collecting runtime coverage data ...
[20:24:55]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_alleExisterendeErAnnullerede
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_ingenEksisterendeValgteRelationer
[20:24:56]: [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 3,077 sec
[20:24:56]: dk.gensam.gaia.business.ydelse.YdelsestypeBOTest (3s)
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsevariationer
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_alleExisterendeErAnnullerede
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_ingenEksisterendeValgteRelationer正如您所看到的,YdelsestypeBOTest中的测试运行了两次...
发布于 2009-12-21 22:44:48
在这行中:
20:24:55: loadYdelsevariationer EMMA:收集运行时覆盖数据
看起来像是另一个Ant目标正在调用代码覆盖率工具Emma,该工具随后会重新运行您的测试。如果你用这个目标运行你的Ant脚本,也就是ant junit,它总是这样做吗?
发布于 2009-12-17 22:21:40
很难知道这里到底发生了什么,但请尝试临时删除所有测试套件并重新编译,以确保它们不会导致问题。如果您开始从测试套件转移到使用batchtest,那么看起来您可能想要摆脱测试套件。
https://stackoverflow.com/questions/1910416
复制相似问题