2011-10-07 13 views
21

dependsOnMethods@Test एनोटेशन का गुण तब ठीक काम करता है जब परीक्षण पर निर्भर किया जाता है, उसी परीक्षा में उसी एनोटेशन में होता है, जिसमें इस एनोटेशन के परीक्षण के समान होता है। लेकिन यह काम नहीं करता है अगर परीक्षण की विधि और निर्भर-निर्भर विधि विभिन्न वर्गों में हैं। उदाहरण निम्नानुसार है:टेस्टएनजी विभिन्न वर्ग

class c1 { 
    @Test 
    public void verifyConfig() { 
    //verify some test config parameters 
    } 
} 

class c2 { 
    @Test(dependsOnMethods={"c1.verifyConfig"}) 
    public void dotest() { 
    //Actual test 
    } 
} 

क्या इस सीमा को पाने के लिए कोई रास्ता है? class c2 में एक परीक्षण बनाने का एक आसान तरीका है जो c1.verifyConfig() पर कॉल करता है। लेकिन यह बहुत अधिक पुनरावृत्ति होगी।

उत्तर

25

विधि को group में रखें और dependsOnGroups का उपयोग करें।

class c1 { 
    @Test(groups={"c1.verifyConfig"}) 
    public void verifyConfig() { 
    //verify some test config parameters 
    } 
} 

class c2 { 
    @Test(dependsOnGroups={"c1.verifyConfig"}) 
    public void dotest() { 
    //Actual test 
    } 
} 

यह एक @Before में विन्यास को सत्यापित करने के लिए * और फेंक कुछ गलत हो जाता है वहाँ यदि ऐसा है तो परीक्षण नहीं चलेंगे सिफारिश की है। इस तरह परीक्षण सिर्फ परीक्षण पर ध्यान केंद्रित कर सकते हैं।

class c2 { 
    @BeforeClass 
    public static void verifyConfig() { 
    //verify some test config parameters 
    //Usually just throw exceptions 
    //Assert statements will work 
    } 

    @Test 
    public void dotest() { 
    //Actual test 
    } 
} 
+3

यह ठीक काम कर रहा है जब वर्ग फ़ाइल अलग-अलग चल रहा है, जबकि हो रही testing.xml फ़ाइल के माध्यम से इसे चलाने त्रुटि DependencyMap :: विधि "LoanApprovalTest.testLoanApprova (java.util.Hashtable) [pri: 0, उदाहरण: कॉम .zions.release1.Sanity.LoanTestCases.LoanAprprovalTest @ 3884b2] "किसी भी समूह पर निर्भर करता है" CreateLoanAccountTest.testCreateLoanAccount " –

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