我想在同一个JUnit 4测试中使用Arquillian和PowerMock的功能。
问题是这两个产品都是JUnit Runner
,它们应该与@RunWith
一起使用,这不可能在同一个测试类上使用多个@RunWith
,或者放在同一个Runner
注释中的多个@RunWith
类。
你知道怎么办?
答案 0 :(得分:12)
如果您使用PowerMockRule(TestRule),则可以在不使用跑步者的情况下使用PowerMock。来自PowerMockRule:
从版本1.4开始,可以使用JUnit引导PowerMock 规则而不是使用PowerMockRunner和RunWith注释。 这允许您使用其他JUnit运行器,同时仍然可以从中受益 PowerMock的功能。您可以通过指定:
来完成此操作
@RunWith(Arquillian.class);
public class MyTest {
@Rule
PowerMockRule rule = new PowerMockRule();
// Tests goes here
...
}
另请参阅Junit Parameterized tests together with Powermock - how?的答案以及PowerMock Google群组中的以下主题:Using PowerMock without the RunWith?。
答案 1 :(得分:2)
不,你要么:
答案 2 :(得分:0)
JUnit4仅支持一个@RunWith注释,而JUnit4的@RunWith注释不接受多个运行者。
参考: project13