2012-02-29 9 views
9

में आर्किलीयन और पावरमैक दोनों का उपयोग करके मैं उसी ज्यूनिट 4 परीक्षण में आर्किलीयन और पावरमैक दोनों की सुविधाओं का उपयोग करना चाहता हूं।उसी ज्यूनिट परीक्षण

समस्या यह है कि दोनों उत्पादों JUnit रहे हैं Runner रों जो @RunWith साथ किया जाना चाहिए है, और यह एक ही परीक्षण वर्ग पर एक से अधिक @RunWith उपयोग करने के लिए, या एक ही @RunWith एनोटेशन में कई Runner रों वर्ग डाल करने के लिए संभव नहीं है।

क्या आपको ऐसा करने का कोई तरीका पता है?

+0

धन्यवाद, मैं क्रम में मेरे सवाल संपादित किया है और अधिक सटीक होना करने के लिए। –

+0

मैथ्यू, क्या आप कृपया मेरी समस्या को देख सकते हैं http://stackoverflow.com/questions/30799352/how-to-use-powermock-with-arquillian –

उत्तर

12

यदि आप PowerMockRule (जो TestRule है) का उपयोग करते हैं तो आप धावक का उपयोग किए बिना पावरमैक का उपयोग कर सकते हैं। PowerMockRule से:

संस्करण 1.4 चूंकि यह एक JUnit नियम का उपयोग कर के बजाय PowerMockRunner और RunWith एनोटेशन का उपयोग कर PowerMock bootstrap करना संभव है। यह आपको पावरमोक की कार्यक्षमता से लाभान्वित करते हुए अन्य जुनीट धावकों का उपयोग करने की अनुमति देता है। आप निर्दिष्ट करके इस कार्य करें:

@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?

+1

@ मैट्ट्यू फ़ारवेल: यह मेरे लिए काम नहीं करता है। मुझे मिलता है: 'java.lang.IllegalStateException: PowerMockRule का उपयोग केवल सिस्टम क्लासलोडर के साथ किया जा सकता है लेकिन मॉड्यूल क्लासलोडर द्वारा मॉड्यूल "deployment.test.war: मुख्य" सेवा मॉड्यूल लोडर से "लोड किया गया था। आर्किलीयन और पावरमैक का एक साथ उपयोग करने के लिए मैं क्या कर सकता हूं? – badera

2

नहीं, आप या तो की जरूरत है:

  • उपयोग एक और एक परीक्षण आधार वर्ग है कि चीजें आप क्या करना अन्य धावक चाहता था करता है बनाएँ।
  • अलग-अलग धावकों का उपयोग करके प्रत्येक परीक्षण को कई परीक्षणों में अलग करें।
0

जुनीट 4 केवल एक @RunWith एनोटेशन का समर्थन करता है, और JUnit4 की @RunWith एनोटेशन एकाधिक धावकों को स्वीकार नहीं करता है।

संदर्भ:project13

संबंधित मुद्दे