在同一个JUnit测试中使用Arquillian和PowerMock

时间:2012-02-29 09:31:06

标签: unit-testing junit powermock jboss-arquillian

我想在同一个JUnit 4测试中使用Arquillian和PowerMock的功能。

问题是这两个产品都是JUnit Runner,它们应该与@RunWith一起使用,这不可能在同一个测试类上使用多个@RunWith,或者放在同一个Runner注释中的多个@RunWith类。

你知道怎么办?

3 个答案:

答案 0 :(得分:12)

如果您使用PowerMockRuleTestRule),则可以在不使用跑步者的情况下使用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