我将所有测试动态加载到这样的测试套件中:
@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方法,但没有运气。
答案 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方法中的代码都会运行。