动态加载类后,将jundown方法添加到junit测试套件中

时间:2015-08-18 08:30:18

标签: java junit runtime test-suite

我将所有测试动态加载到这样的测试套件中:

@RunWith(AllTests.class)
public final class MyTestSuite {
    public static TestSuite suite() {               
        TestSuite suite = new TestSuite();
        for (Test test : findAllTestCasesRuntime()) { // returns a list of JUnit4TestAdapter(Class.forName(fileName))
          suite.addTest(test);
        }    
        return suite;
      }
}

我想将@after方法添加到为所有测试运行的testsuite中。今天,每个测试都有这种方法做同样的事情。我试图将testsuite子类化并添加@after方法,但没有运气。

1 个答案:

答案 0 :(得分:1)

这是我找到的解决方案: 我创建了一个基础测试类:

@Ignore
public class MyTestBase {
    @After
    public void runsAfterEveryTestFromBaseClass() {
        //code
    }   
}

我的实际测试类现在扩展了这个类,所以问题中的代码现在看起来像这样:

@RunWith(AllTests.class)
public final class MyTestSuite extends MyTestBase{
    public static TestSuite suite() {               
        TestSuite suite = new TestSuite();
        for (Test test : findAllTestCasesRuntime()) { // returns a list of JUnit4TestAdapter(Class.forName(fileName))
          suite.addTest(test);
        }    
        return suite;
      }
}

现在,每次测试后,runsAfterEveryTestFromBaseClass方法中的代码都会运行。