我想在同一个 JUnit 4 测试中同时使用 Arquillian 和 PowerMock 的特性。
问题是这两个产品都是 JUnitRunner
应该与 一起使用@RunWith
,并且不可能@RunWith
在同一个测试类上使用多个,或者将多个Runner
s 类放在同一个@RunWith
注释中。
你知道有什么办法吗?
我想在同一个 JUnit 4 测试中同时使用 Arquillian 和 PowerMock 的特性。
问题是这两个产品都是 JUnitRunner
应该与 一起使用@RunWith
,并且不可能@RunWith
在同一个测试类上使用多个,或者将多个Runner
s 类放在同一个@RunWith
注释中。
你知道有什么办法吗?
如果您使用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
...
}
另请参阅与 Powermock 一起对 Junit 参数化测试的答案 - 如何?以及 PowerMock google 组中的以下线程:Using PowerMock without the RunWith? .
不,您要么需要:
JUnit4 只支持一个@RunWith 注解,JUnit4 的@RunWith 注解不接受多个runner。
参考: project13