2011-10-07 16 views
21

@TestアノテーションのdependsOnMethods属性は、依存するテストがこのアノテーションを持つテストと同じクラスにある場合に正常に機能します。しかし、テスト対象メソッドと依存メソッドが異なるクラスにある場合は機能しません。例は次のとおりです。異なるクラスのtestNG dependsOnMethods

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

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

この制限を回避する手段はありますか? 1つの簡単な方法は、c1.verifyConfig()を呼び出すclass c2にテストを作成することです。しかしこれは繰り返しすぎるでしょう。

答えて

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で設定を確認し、テストが実行されませんので、何かがうまくいかない場合はスローすることをお勧めします。このようにして、テストはテストだけに集中することができます。取得testing.xmlファイルを介してそれを実行しながら、クラスファイルの個々を実行するときにこれが正常に動作している

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

エラーDependencyMap ::方法「LoanApprovalTest.testLoanApprova(するjava.util.Hashtable)[PRI:0、インスタンス:COM .zions.release1.Sanity.LoanTestCases.LoanApprovalTest @ 3884b2] "存在しないグループに依存する" CreateLoanAccountTest.testCreateLoanAccount " –

関連する問題