从jar运行JUnit测试的ant任务(但只有具有测试的文件!)

时间:2018-06-06 07:28:28

标签: junit ant

我们在自定义框架中使用JUnit来测试应用程序行为。我们实际上并没有进行单元测试,只是利用JUnit。

我已经创建了一个ant任务来运行jar文件中的所有测试,但遗憾的是它正在尝试将所有作为JUnit测试运行。由于jar文件除了测试之外还包含其他东西(它包含支持框架),这是一个问题。

有没有办法让junit任务只运行标记为测试的东西(我们使用@Test)?

目前我的ant任务看起来像这样:

<target name="test">
    <junit printsummary="yes" haltonfailure="no">
        <classpath refid="library.third-party.classpath" />
        <classpath>
            <pathelement location="${basedir}/build/jar/fidTester.jar" />
        </classpath>

        <formatter type="plain" />
        <formatter type="xml" />

        <batchtest fork="no" todir="${basedir}/reports">
            <zipfileset src="${basedir}/build/jar/fidTester.jar" includes="**/tests/**/*.class" />
        </batchtest>

    </junit>
</target>

1 个答案:

答案 0 :(得分:0)

来自Ant JUnit Task documentation

skipNonTests

  

不要将任何不包含JUnit测试的类传递给测试   亚军。这可以防止非测试在测试中显示为测试错误   结果。通过查找@Test注释来识别测试   具体课程中任何不能扩展的方法   junit.framework.TestCase,或带有名称的公共/受保护方法   从扩展的具体类中的测试开始   的junit.framework.TestCase。标有JUnit 4的类   org.junit.runner.RunWith或org.junit.runner.Suite.SuiteClasses   注释也会传递给JUnit以执行,就像任何类一样   使用公共/受保护的无参数suite()方法。