@DataProvider возвращает 100 значений столбцов
Я использую TestNG Framework для моей автоматизации. Метод DataProvider возвращает 100 значений столбцов (данных, необходимых для тестирования) для каждой строки из листа Excel. Мне нужно использовать их в моем @Test. Как передать 100 параметров в метод @Test? Есть ли простой способ сделать это? Трудно написать 100 параметров в методе @Test. Любой другой способ сделать это?
@DataProvider(name="InputData")
public Object[][] InputData() throws IOException
{
Object[][] data = testData(dataFile,"Sheet1");
return data;
}
@Factory(dataProvider = "InputData")
public A_Test(String a,String b, , , , , , , , , , , )
{
this.stream=a;
this.Keyword=b;
}
1 ответ
Просто передайте varaggs String... str
@Factory(dataProvider = "InputData")
public A_Test(String... str) {
}
Некоторые вещи для рассмотрения
1. Большие, нечитаемые отчеты об испытаниях
Каждый вызов регистрируется отдельно, со всеми параметрами. Он становится нечитаемым даже при наличии около 5 параметров и около 50 вызовов.
2. Обработка исключений
Выполнять сложную логику в поставщике данных не очень хорошая идея. Когда происходит исключение в @DataProvider
все тесты, использующие его, пропускаются. Когда вы читаете файл Excel в @DataProvider
может произойти сбой из-за отсутствия файла, слишком большого файла, неправильного формата файла и т. д.
Скорее всего, вы предпочитаете, чтобы эти тесты проваливались, поэтому сборка тоже не удалась. См. http://rolf-engelhard.de/2011/10/fail-instead-of-skip-a-test-when-testngs-dataprovider-throws-an-exception/ для возможных решений. Для меня решение 1 (тест для провайдера данных) или 2 (возврат пустого массива за исключением) имеет смысл.