Самый простой способ определить, где установить точку отладки, - это сохранить счетчик, который проверяет, какая итерация поставщика данных выполняется, а затем, когда значение достигает желаемого значения, выполнить оператор печати отладки и установить точку останова в этой строке. .
Вот пример
import java.util.concurrent.atomic.AtomicInteger;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class SampleTestCase {
private final AtomicInteger counter = new AtomicInteger(1);
@Test(dataProvider = "getData")
public void testMethod(String s) {
if (counter.getAndIncrement() == 2) {
System.err.println("Debug mode on"); //Set a breakpoint on this line
}
System.err.println("Hello " + s);
}
@DataProvider
public Object[][] getData() {
return new Object[][]{
{"TestNG"},{"Spring"},{"Selenium"}
};
}
}
Кстати, этот код выглядит как анти-паттерн или плохая практика?
Не знаю думаю, что многое можно сказать, просто посмотрев на скелетный код. В образце, которым вы поделились, вряд ли есть что-то, что мы могли бы предложить.