У меня около 100-150 сценариев ios, которые разбиты на разные теги (prio-1, prio-2, prio-3). Большая часть тестов находится в prio-3. Эти тесты сначала сосредоточены на поиске определенного клиента в базе данных с указанными c флагами и выполнении потока.
Проблема в том, что база данных меняется, и сегодня у меня может быть клиент, которого вчера я не делал. . Что я хочу сделать, это запустить все тесты и, когда результат определенного шага будет виден в методе @After, полностью удалить его из отчета.
Это обеспечит выполнение всех возможных тестов .
@After
public void afterScenario(Scenario scenario) throws Exception {
Field f1 = scenario.getClass().getDeclaredField("delegate");
f1.setAccessible(true);
TestCaseState testCaseState = (TestCaseState) f1.get(scenario);
System.out.println(testCaseState);
Field f2 = testCaseState.getClass().getDeclaredField("stepResults");
f2.setAccessible(true);
List<Result> results = (List<Result>) f2.get(testCaseState);
System.out.println(results.get(0).getError());
if(results.get(0).getError().toString().contains("No customer found")){
// code to remove scenario from report
}
}