我想在同一个JUnit 4测试中使用Arquillian和PowerMock的功能。在同一JUnit测试中同时使用Arquillian和PowerMock
的问题是,这两种产品都是基于JUnit Runner
S的应该@RunWith
使用,而这是不可能在同一个测试类使用多个@RunWith
,或者把多个Runner
的类在同一个@RunWith
注解。
你知道有什么办法吗?
我想在同一个JUnit 4测试中使用Arquillian和PowerMock的功能。在同一JUnit测试中同时使用Arquillian和PowerMock
的问题是,这两种产品都是基于JUnit Runner
S的应该@RunWith
使用,而这是不可能在同一个测试类使用多个@RunWith
,或者把多个Runner
的类在同一个@RunWith
注解。
你知道有什么办法吗?
如果使用PowerMockRule(这是一个TestRule)可以使用PowerMock不使用亚军。从PowerMockRule:
由于1.4版本有可能使用JUnit的 规则,而不是使用PowerMockRunner和RunWith注解来引导PowerMock。 这允许您使用其他JUnit跑步者,同时仍受益于PowerMock的 的功能。您可以通过指定做到这一点:
@RunWith(Arquillian.class);
public class MyTest {
@Rule
PowerMockRule rule = new PowerMockRule();
// Tests goes here
...
}
又见答案Junit Parameterized tests together with Powermock - how?和PowerMock谷歌组在以下主题:Using PowerMock without the RunWith?。
@Mattew法韦尔:这不适合我。我得到:'java.lang.IllegalStateException:PowerMockRule只能与系统类加载器一起使用,但是由Module Module Loader'的ModuleClassLoader加载Module“deployment.test.war:main”加载。我能做些什么来一起使用Arquillian和PowerMock? – badera 2016-05-13 05:42:05
不,你要么需要:
JUnit4仅支持一个@RunWith注释,并且JUnit4的@RunWith注释不接受多个跑步者。
参考:project13
谢谢,我已经编辑我的问题,以便更精确。 – 2012-02-29 10:12:46
马修,你可以请看看我的问题http://stackoverflow.com/questions/30799352/how-to-use-powermock-with-arquillian – 2015-06-12 12:25:53