Есть набор тестов для проверки оплаты/переводов.
Сценарий теста идентичный, меняются только данные. Использую @DataProvider, чтобы не дублировать код. Удобно, хорошо, понятно, компактно. Но, возникают случаи когда необходим запуск теста только с 1 набором данных (например перевод только с одной конкретной карты на другую), а не всех вариантов, прописанных в DataProvider.
Что делать в этом случае ???
я не нашел никакой информации о том, как можно запустить тесты использующие #dataprovider или #factory только с одним определенным набором данных, если их по факту прописано множество.
Ситуация возникла в связи с тем, что каждый перевод/оплата снимает комиссию и дополнительные ежедневные траты на тесты, которые сейчас проверять не нужно - бессмысленны.
С другой стороны, создавать 10 одинаковых тестовых методов, но с разными параметрами только для того, чтобы была возможность запустить какие-то из них точечно, а не скопом - мне такой подход тоже не нравится.
Подскажите какой-то наиболее правильный выход в данной ситуации ?
public class MyAnnotationTransformer implements IAnnotationTransformer2 {
[...empty methods...]
public void transform(IDataProviderAnnotation annotation, Method method) {
if (method.getName().equals("testInternational")) {
// Custom way to find indices (sys properties?)
annotation.setIndices(Collections.asList(0, 2));
}
}
}
подключить лисенеры через suite.xml или @Listeners .
@Necrosium так вы же уже научились получать counter через вызов context.getCurrentXmlTest() .getLocalParameters ? или нет ? или вам шашечки ? простите случай с передачей индекса из testng.xml в теле метода для фильтрования внутри другого метода
дающего параметры для данного и все это инлайн мне кажется немного пере-усложненным решением…
приведите пожалуйста работающий пример c доступом к параметром заданным на уровне метода класса через context.getCurrentXmlTest().getLocalParameters()
и опишите еще раз какой конкретно эффект ожидаете оп применения @Parameters и @Test(dataProvider = ... одновременно и почему getLocalParameters не дает этого эффекта. обе аннотации служат для автоматичаского заполнения аргументов у метода и аргументы можно задать только один раз …
Кстати, да. Можно сделать какой-то простой прототип проекта и выложить на гитхаб?
Я похожую проблему для junit у себя для параметризованных тестов решал, в смысле как сделать разовый запуск конкретных сценариев. Костыльное было и много нюансов, но вроде работало хорошо.
Added to parameter data index 0
Added to parameter data index 1
Running data test with 100.0, junit, allowing it to fail the assertion
Running data test with 110.0, junit-jupiter, allowing it to fail the assertion
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.294 sec - in TestSuite