有没有办法一次构建JUnit的所有测试用例?就像通过命令“ rake test”在“ Ruby on rails”上执行所有测试类一样。对于Java,我看到了在包中执行所有测试的一些解决方案。但我想对所有软件包执行所有测试用例。可能吗?我该如何对build.xml文件进行处理?
答案 0 :(得分:0)
我还不能添加评论,这就是为什么我将其发布为答案。
我认为您需要的是测试套件类。
类似如下。
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
}
)
public class TestSuite {
}
您可以从任何包中导入所需的类,然后立即运行它们。包含测试用例的类放在“ SuiteClasses”注释下。
编辑:您就像在Eclipse中测试其他测试用例文件一样运行它。
答案 1 :(得分:0)
您可以运行按程序包名称或类名称筛选的所有测试或特定测试。
以下是从JUnit Task manual提取的<batchtest>
的示例:
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<pathelement location="${build.tests}"/>
<pathelement path="${java.class.path}"/>
</classpath>
<formatter type="plain"/>
<test name="my.test.TestCase" haltonfailure="no" outfile="result">
<formatter type="xml"/>
</test>
<batchtest fork="yes" todir="${reports.tests}">
<fileset dir="${src.tests}">
<include name="**/*Test*.java"/>
<exclude name="**/AllTests.java"/>
</fileset>
</batchtest>
</junit>
您可以根据需要调整<include name=""/>
/ <exclude name=""/>
元素,或添加更多包含/排除元素。然后,您可以为<target/>
,<target name="all-tests"/>
等不同的测试创建不同的蚂蚁<target name="package-foo-tests"/>
。