2011-10-21 3 views
1

私はtestng + webdriverを自動テストに使用しています。 @AfterClassアノテーションが期待通りに機能しないという問題があります。クラスで無効なテストがある場合、TestNg @afterclassは呼び出されません

私は、次のしているテスト・クラス:

public class WorkspaceTest{ 
     @BeforeClass 
     public void init(){ 
      //Initialization steps 
     } 

     @Test 
     public void testMethod1{...} 

     @Test 
     public void testMethod2{...} 

     @Test(enabled=false) 
     public void testMethod3{...} 

     @AfterClass(alwaysRun=true) 
     public void tearDown{ 
      //finalizing steps 
     } 

}

すべての試験方法が有効になっている場合は - tearDownメソッドが正常に動作し、 が、テストのいずれかが無効になっている場合 - 私も休憩に達していませんtearDownメソッドのポイント。

@AfterClass注釈の動作は期待されていますか?または私は何か間違っている?

Testng version: 6.1.1 
Webdriver 2.5.0 
Java 1.6.0_26 
+0

同じバグが発生しましたIntelliJでTestNGテストを実行したが、Gradle経由でテストを実行したときに(@ enabled = falseの場合でも)@ AfterClassを正しく呼び出した。 – checketts

答えて

1

それは私の作品:ここ

tearDown 
PASSED: testMethod1 
PASSED: testMethod2 

=============================================== 
    Test1 
    Tests run: 2, Failures: 0, Skips: 0 
=============================================== 

は、私が使用したソースです:

public class A { 
     @BeforeClass 
     public void init(){ 
      //Initialization steps 
     } 

     @Test 
     public void testMethod1() {} 

     @Test 
     public void testMethod2() {} 

     @Test(enabled=false) 
     public void testMethod3() {} 

     @AfterClass(alwaysRun=true) 
     public void tearDown() { 
     System.out.println("tearDown"); 
     } 

} 
+0

お時間をありがとう!私は問題をローカライズしたように見えます。 Eclipse testngプラグインにはいくつか問題があります。同じテストがIntelliJIdeaでうまく機能しています – GentleMurderer

+0

testng-usersリストに結果をメールすることはできますか? TestNG Eclipseプラグインに問題があるかどうか調べてみてください。 –

0

標準のJUnit @AfterClassを使用して、あなたがのために、パブリック静的voidメソッドに注釈を付けする必要がある場合例:

@AfterClass 
public static void logout() {} 
関連する問題