2011-10-07 25 views
21

@Test ek açıklamasının dependsOnMethods özniteliği, bağlı olması gereken sınama, bu ek açıklamaya sahip olan sınama ile aynı sınıfta olduğunda iyi çalışır. Ancak, test edilecek yöntem ve bağımlı metot farklı sınıflarda ise işe yaramaz. Örnek aşağıdaki gibidir:TestNG farklı sınıftan bağımsız değişkenler

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

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

Bu sınırlamayı aşmanın bir yolu var mı? Kolay bir çıkış yolu, class c2 numaralı telefondan c1.verifyConfig() numaralı telefonu arayarak bir test oluşturmaktır. Ama bu çok fazla tekrarlama olurdu.

cevap

25

Yöntemi group'a koyun ve dependsOnGroups'u kullanın.

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 
    } 
} 

O * Bir @Before yapılandırmayı doğrulamak ve testler yayınlanmaz yüzden bir şey yanlış giderse atmak tavsiye edilir. Bu şekilde testler sadece test etmeye odaklanabilir. alma testing.xml dosyası üzerinden çalıştırılırken bir sınıf dosyası bireyi çalıştırırken Bu iyi çalışıyor

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

hata DependencyMap :: Yöntemi "LoanApprovalTest.testLoanApprova (java.util.hashtable) [pri: 0, örnek: com .zions.release1.Sanity.LoanTestCases.LoanApprovalTest @ 3884b2] "varolmayan bir gruba bağlı" CreateLoanAccountTest.testCreateLoanAccount " –

İlgili konular