2016-05-10 27 views
0

我已經閱讀了一些關於結合dataproviders stackoverflow的帖子,但我不能得到任何工作。結合dataproviders TestNG

我目前正在做的是一個硒測試,它會截取網站翻譯成的每種語言的截圖。 它只需點擊每個鏈接,同時截取它的截圖,然後它將URL切換到另一種語言並重復。

我的問題是,當我這樣做,我不能重定向我的屏幕截圖到每個「語言測試」的特定文件夾。要做到這一點,我需要第二個數據提供者,但是我已經有一個用於此測試方法的數據提供者,用於爲每個測試運行不同的URL。

所以我需要以某種方式組合這兩個數據提供者。 他們現在這個樣子

public static Object [][] language(){ 
    return new Object[][]{ 
     {"https://admin-t1.taxicaller.net/login/admin.php?lang=en"}, 
     {"https://admin-t1.taxicaller.net/login/admin.php?lang=sv"}, 
     }; 

} 



public static Object [][] directory(){ 
    return new Object[][]{ 
     {"screenshotsEnglish.dir"}, 
     {"screenshotsSwedish.dir"}, 

     }; 
} 

在我的測試類我只是想達到這兩個寫

driver.get(**url**); 
// This is the screenshot method. Where "Directory" is written I decide where to save the screenshots 
    Properties settings = PropertiesLoader.fromResource("settings.properties"); 
     String screenshotDir = settings.getProperty(**directory**); 
     screenShooter = new ScreenShooter(driver, screenshotDir, "en"); 

希望我已經說清楚了,感謝所有幫助!

問候

+0

你應該有https://github.com/cbeust/testng/pull/865 – juherr

回答

1
public static Object[][] dp() { 
    return new Object[][]{ 
     { 
      "https://admin-t1.taxicaller.net/login/admin.php?lang=en", 
      "screenshotsEnglish.dir" 
     }, 
     { 
      "https://admin-t1.taxicaller.net/login/admin.php?lang=sv", 
      "screenshotsSwedish.dir" 
     } 
    }; 
} 

@Test(dataProvider = "dp") 
public void t(String url, String directory) { 
    driver.get(url); 
    Properties settings = PropertiesLoader.fromResource("settings.properties"); 
    String screenshotDir = settings.getProperty(directory); 
    screenShooter = new ScreenShooter(driver, screenshotDir, "en"); 
    /*...*/ 
} 
+0

一看,我會嘗試這個星期一。但它看起來很有希望,非常感謝您的幫助! –

+0

完美工作,再次感謝! –