2011-10-07 215 views
21

@Test註釋的dependsOnMethods屬性可以正常工作,因爲依賴的測試與具有此註釋的測試屬於同一個類。但是,如果待測試方法和依賴方法處於不同的類別中,則不起作用。示例如下:TestNG dependsOn不同類別的方法

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的)優先級:0,如:玉米.zions.release1.Sanity.LoanTestCases.LoanApprovalTest @ 3884b2]「依賴於不存在的組」CreateLoanAccountTest.testCreateLoanAccount「 –