2016-05-10 2 views
0

Я прочитал несколько сообщений stackoverflow о объединении dataproviders, но я не могу ничего сработать.Объединение dataproviders TestNG

Что я сейчас делаю, это тест селена, который делает скриншоты каждого языка, на котором переведен сайт. Он просто щелкает по каждой ссылке, снимая скриншоты, затем переключает URL-адрес на другой язык и повторяется.

Моя проблема заключается в том, что я не могу перенаправить свои скриншоты в определенную папку на «тест языка». Для этого мне нужен второй dataprovider, но у меня уже есть dataprovider для этого метода тестирования для запуска другого 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

Работал отлично, еще раз спасибо! –

Смежные вопросы