Java 如何从代码中运行整个JUnit测试套件
在eclipse中,使用JUnit4,您可以右键单击一个项目或包,然后单击RunasJUnitTest,它将运行该分组中的所有JUnit测试。有没有一种方法可以从代码中执行相同的操作?JUnit提供了。试试看Java 如何从代码中运行整个JUnit测试套件,java,eclipse,junit,junit4,Java,Eclipse,Junit,Junit4,在eclipse中,使用JUnit4,您可以右键单击一个项目或包,然后单击RunasJUnitTest,它将运行该分组中的所有JUnit测试。有没有一种方法可以从代码中执行相同的操作?JUnit提供了。试试看 [...] public class TestCaseA { @Test public void testA1() { // omitted } } [...] public class TestCaseB { @Test publ
[...]
public class TestCaseA {
@Test
public void testA1() {
// omitted
}
}
[...]
public class TestCaseB {
@Test
public void testB1() {
// omitted
}
}
[...]
@RunWith(value=Suite.class)
@SuiteClasses(value = {TestCaseA.class})
public class TestSuiteA {
}
[...]
@RunWith(value=Suite.class)
@SuiteClasses(value = {TestCaseB.class})
public class TestSuiteB {
}
[...]
@RunWith(value = Suite.class )
@SuiteClasses(value = {TestSuiteA.class, TestSuiteB.class})
public class MasterTestSuite{
}
您可以在junit中使用如下包:
public static void main(String[] args){
List tests = new ArrayList();
tests.add(TestOne.class);
tests.add(TestTwo.class);
for (Class test : tests){
runTests(test);
}
}
private static void runTests(Class test){
Result result = JUnitCore.runClasses(test);
for (Failure failure : result.getFailures()){
System.out.println(failure.toString());
}
}
使用JUnit套件:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
// Put your Test Case Class here
@Suite.SuiteClasses({
JunitTest1.class,
JunitTest2.class,
JunitTest3.class
})
public class JunitTestSuite {}
然后创建一个main方法来运行它
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class JunitTestSuiteRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(JunitTestSuite.class);
for (Failure fail : result.getFailures()) {
System.out.println(fail.toString());
}
if (result.wasSuccessful()) {
System.out.println("All tests finished successfully...");
}
}}
我的许多测试都有相同的名称,因此此选项也不起作用。我真的在寻找与单击项目或包的“作为JUnit测试运行”具有相同功能的代码。