我有一个关于在pararell中使用@Runwith(Enclosed.class)运行PowerMock的问题。
我的测试类结构:
@RunWith(PowerMockRunner.class)
@PrepareForTest(UnitBuild.class)
public class ut_QueueBuild{
@Test
public void someTest(){}
public static InnerTestClass{
@Test
public void someInnerTest(){}
}
}
在使用powerMock之前我刚刚使用过:
@RunWith(Enclosed.class)
public class unitTestClass {
...
但由于我使用的是PowerMock,因此无法使用pararell @RunWith(PowerMockRunner.class) 和 @RunWith(Enclosed.class)
我该如何解决这个问题?
非常感谢!
答案 0 :(得分:1)
实际上您可以使用PowerMockRunnerDelegate
并执行:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Enclosed.class)
@PrepareForTest(MyStaticClass.class)
public class ut_QueueBuild{
@Test
public void someTest(){}
public static InnerTestClass{
@Test
public void someInnerTest(){}
}
}
这也适用于其他参赛者,例如Parametrized
。
答案 1 :(得分:0)
JUnit4仅支持一个@RunWith注释,而JUnit4的@RunWith注释不接受多个运行者。Reference: project13
可能重复的问题,但这里是StackOverflow Question @Matthew Farwell的回答
不,你要么:
使用一个并创建一个测试基类来完成你想要的事情 另一个跑者要做。将您的测试分成多个测试 使用不同的跑步者。