对于我们的用例,作为示例 - 我们需要运行JUnit测试,即使它在Test Suite中多次添加,也不会被跳过。
目前我们注意到,如果JUnit测试运行器在测试套件中的其他位置找到测试,则会跳过具有相同名称的测试。这是一个示例屏幕截图,显示测试" Case_A"在" Procedure_A"在测试套件中被跳过 -
是否可以覆盖此行为,若有人可以指出我们正确的方向?
答案 0 :(得分:0)
我做了一些关于这个问题的研究。
简单设置 - 一个测试“TestCase_A”和一个套件“TestProcedure_A”运行TestCase_A两次:
public class TestCase_A {
@Test
public void test() throws Exception {
System.out.println("Case_A RUN");
Assert.assertTrue(true);
}
}
@RunWith(Suite.class)
@Suite.SuiteClasses({ TestCase_A.class, TestCase_A.class })
@SuppressWarnings("all")
public class TestProcedure_A {
}
我使用Eclipse和maven运行测试套件。 查找:sysout语句实际显示,TestCase_A运行两次!
因此,Eclispe View具有误导性。测试多次运行 - 树也反映了这一点。但是,在Eclispe Junit视图中无法正确显示实际单个调用的状态。
我认为该视图基于 junit.runner.TestRunListener 。它可能值得研究。