9

我想在同一个 JUnit 4 测试中同时使用 Arquillian 和 PowerMock 的特性。

问题是这两个产品都是 JUnitRunner应该与 一起使用@RunWith,并且不可能@RunWith在同一个测试类上使用多个,或者将多个Runners 类放在同一个@RunWith注释中。

你知道有什么办法吗?

4

3 回答 3

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
    ...
}

另请参阅与 Powermock 一起对 Junit 参数化测试的答案 - 如何?以及 PowerMock google 组中的以下线程:Using PowerMock without the RunWith? .

于 2012-02-29T09:48:24.727 回答
2

不,您要么需要:

  • 使用一个并创建一个测试基类来执行您希望其他跑步者做的事情。
  • 将您的测试分成多个测试,每个测试使用不同的运行器。
于 2012-02-29T09:40:25.840 回答
0

JUnit4 只支持一个@RunWith 注解,JUnit4 的@RunWith 注解不接受多个runner。

参考: project13

于 2013-11-11T11:47:46.417 回答