JUnit 4中如何同时运行外部类和嵌套静态内部类的所有测试用例
JUnit4 同时执行外层类与静态内部类测试用例的解决方案
问题根源
JUnit 4 的 Enclosed 运行器设计逻辑为仅扫描执行外层类中包含的静态内部类的测试用例,会直接忽略外层类自身定义的@Test方法,因此才会出现加@RunWith(Enclosed.class)仅执行内部类测试、移除后仅执行外层类测试的问题。
最优解决方法
遵循Enclosed运行器的设计规范,将外层类的测试用例移入一个新增的静态内部类中即可,调整后的代码如下:
@RunWith(Enclosed.class) public class OuterClassTest { // 新增静态内部类存放原外层测试用例 public static class OuterMethodTest { @Test public void outerTest() { } } public static class InnerClassTest { @Test public void innerTest() { } } }
注意所有存放测试用例的内部类必须使用public static修饰,否则运行器不会识别为测试类
调整后直接运行OuterClassTest,即可一次性执行所有静态内部类下的测试用例,覆盖原有的outerTest和innerTest两个测试点。
内容的提问来源于stack exchange,提问作者kosteklvp
相关产品推荐
相关产品推荐

