2014-07-24 214 views

回答

8

您可以在JUnit中使用的软件包,如JUnitCore这样的:

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()); 
    } 
} 
1

JUnit提供了test Suite。试试看。

[...] 
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{ 
} 
+0

我的很多测试都有相同的名称,所以这个选项不会有效。我真的在寻找具有与为项目或包单击“Run as JUnit Test”相同功能的代码。 – meanderingmoose

+0

这种方法要求您提及所有类。 –

6

使用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 {} 

然后创建运行它主要方法。

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..."); 
    } 
}} 
相关问题