JUnit 执行所有包的所有测试类

有什么方法可以一次构建 JUnit 的所有测试用例?就像在“Ruby on rails”上通过命令“rake test”执行所有测试类。对于 Java,我看到了一些在包中执行所有测试的解决方案。但我想为所有包执行所有测试用例。可能吗?我应该如何处理 build.xml 文件?



慕的地6264312
浏览 224回答 2
2回答

料青山看我应如是

您可以运行按包名或类名过滤的所有测试或特定测试。这是<batchtest>取自JUnit 任务手册的示例:<junit printsummary="yes" haltonfailure="yes">&nbsp; &nbsp; <classpath>&nbsp; &nbsp; &nbsp; &nbsp; <pathelement location="${build.tests}"/>&nbsp; &nbsp; &nbsp; &nbsp; <pathelement path="${java.class.path}"/>&nbsp; &nbsp; </classpath>&nbsp; &nbsp; <formatter type="plain"/>&nbsp; &nbsp; <test name="my.test.TestCase" haltonfailure="no" outfile="result">&nbsp; &nbsp; &nbsp; &nbsp; <formatter type="xml"/>&nbsp; &nbsp; </test>&nbsp; &nbsp; <batchtest fork="yes" todir="${reports.tests}">&nbsp; &nbsp; &nbsp; &nbsp; <fileset dir="${src.tests}">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <include name="**/*Test*.java"/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <exclude name="**/AllTests.java"/>&nbsp; &nbsp; &nbsp; &nbsp; </fileset>&nbsp; &nbsp; </batchtest></junit>您可以根据需要调整<include name=""/>/<exclude name=""/>元素或添加更多包含/排除元素。<target/>然后,您可以为不同的测试创建不同的 ant <target name="all-tests"/>,例如<target name="package-foo-tests"/>等。

ibeautiful

我还不能添加评论,这就是我发布这个答案的原因。我认为您需要的是一个测试套件类。如下所示。package com.emeter.test.predeploy.sdm.common;import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;import com.emeter.test.predeploy.sdm.svc.TestOutdatedComponentRpt;import com.emeter.test.predeploy.sdm.svc.TestSubstationSvc;import com.emeter.test.predeploy.sdm.svc.TestSvmComponentSvc;import com.emeter.test.predeploy.sdm.svc.TestSvmNotificationSvc;@RunWith(Suite.class)@SuiteClasses({TestSubstationSvc.class,TestSvmComponentSvc.class,TestSvmNotificationSvc.class,TestOutdatedComponentRpt.class&nbsp;})public class TestSuite {}您可以从任何包中导入所需的类,然后一次运行它们。包含测试用例的类放在“SuiteClasses”注释下。编辑:您只需像 eclipse 中的任何其他测试用例文件一样运行它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java