我想在同一個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