2013-02-07 34 views
0

我想創建一個testNG測試,將取決於以前的測試成功執行(說我想創建一個帳戶,然後編輯一些細節)。我想將它與數據提供者結合起來。我決定使用dependsOnMethods,因爲這似乎是合乎邏輯的,但是我注意到它的行爲與我預期的不同。在下面的例子中,我期望測試「三」跳過一次,並執行一次,因爲第一組數據提供了一個通過條件,另一個提供了失敗條件。不幸的是,我似乎錯過了「dependsOnMethods」背後的一些概念。也許還有其他方式可以做到這一點? 感謝您的幫助。dependsOnMethods和dataprovider方法不執行時,其中一個數據集導致失敗

import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 
import org.testng.Assert; 



public class simpleTest { 

@DataProvider(name = "provided data") 
public static Object[][] data() throws Exception { 
     Object[][] data = new Object[][] { 

       {true}, 
       {false} 
       }; 


     return data; 
} 


@Test(dataProvider = "provided data") 
public void one(boolean cond){ 
    System.out.println("******** 1"); 


} 
@Test(dataProvider = "provided data") 
public void thisfailssometimes(boolean cond){ 
    System.out.print("******** 2 !!!"); 
    if (cond) {System.out.println("PASS");}else{System.out.println("FAIL");}; 
    Assert.assertTrue(cond); 


} 

@Test(dataProvider = "provided data",dependsOnMethods = {"thisfailssometimes"}) 
public void three(boolean cond){ 
    System.out.println("******** 3"); 


} 

} 

回答

0

我也可以看到行爲,我本來會期望三次運行一次並跳過一次。第三種方法在兩種情況下均被跳過。你可以提交一個bug或等待Cedric回覆該線程。 作爲一種變通方法,試圖通過工廠相同的流量給人的預期behavior..here是修改後的代碼..

@Factory(dataProvider="provided data") 
    public simpleTests(boolean b){ 
     this.b = b; 
    } 
    @DataProvider(name = "provided data") 
    public static Object[][] data() throws Exception { 
      Object[][] data = new Object[][] { 
          {true}, 
          {false} 
          }; 


        return data; 
     } 

    @Test 
    public void one(){ 
      System.out.println("******** 1"); 
    } 
    @Test 
    public void thisfailssometimes(){ 
     System.out.print("******** 2 !!!"); 
     if (b) {System.out.println("PASS");}else{System.out.println("FAIL");}; 
     Assert.assertTrue(b); 

      } 

    @Test(dependsOnMethods = {"thisfailssometimes"}) 
    public void three(){ 
     System.out.println("******** 3"); 
      } 
+0

這工作GR8,感謝您的及時回覆和代碼示例。 – abcdefgh

相關問題