@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 (возврат пустого массива за исключением) имеет смысл.

Другие вопросы по тегам