我们在自定义框架中使用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>
答案 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()方法。