JUnit测试由我的Ant目标运行两次

时间:2009-12-15 21:09:00

标签: ant junit

我制作了一个运行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>

我的第一个想法是因为测试套件。但我不再这么认为了。我已经排除了测试套件,而且,它不仅是运行两次的套件的一部分的测试。这是我的全部测试。

以下是我的一个测试类的测试输出的一小部分样本:

[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中的测试运行了两次......

2 个答案:

答案 0 :(得分:2)

从行:

  

[20:24:55]:[loadYdelsevariationer] [测试输出] EMMA:收集运行时覆盖率数据

看起来不同的Ant目标正在调用代码覆盖率工具Emma,然后重新运行测试。如果您使用此目标(即ant junit)运行Ant脚本,它是否始终执行此操作?

答案 1 :(得分:0)

很难说出这里到底发生了什么,但是暂时尝试删除所有测试套件并重新编译,以确保它们不会导致问题。如果您开始从测试套件迁移到使用batchtest,看起来您可能想要摆脱测试套件。