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



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

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

你知道怎么做吗?

如果使用PowerMockRule(这是一个TestRule),则可以在不使用runner的情况下使用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参数化测试和Powermock的答案-如何?以及PowerMock谷歌小组中的以下线程:在没有RunWith的情况下使用PowerMock?。

否,您需要:

  • 使用一个并创建一个测试基类,它可以执行您希望另一个运行程序执行的操作
  • 将你的测试分成多个测试,每个测试使用不同的跑步者

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

参考:项目13

相关内容

  • 没有找到相关文章

最新更新