Java testng中数据提供者的懒散加载
我试图为我的测试实现数据提供者的延迟加载,但它不起作用。下面是我的工厂注释方法的代码片段:Java testng中数据提供者的懒散加载,java,testng,testng-dataprovider,Java,Testng,Testng Dataprovider,我试图为我的测试实现数据提供者的延迟加载,但它不起作用。下面是我的工厂注释方法的代码片段: import java.util.Iterator; import org.testng.annotations.AfterClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Factory; import org.testng.annotations.Test; public class T
import java.util.Iterator;
import org.testng.annotations.AfterClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Factory;
import org.testng.annotations.Test;
public class TF
{
@DataProvider(name="TestInstances")
public static Iterator<Object> testInstancesDP()
{
return new Iterator<Object>()
{
int counter=1;
int MAX;
{
MAX=4;
}
@Override
public boolean hasNext()
{
return counter<=MAX;
}
@Override
public Object next()
{
System.out.println("passing "+counter+" iterator instance");
return new Object[] {counter++};
}
@Override
public void remove()
{
//TODO: IllegalOperationException
}
};
}
private int order;
@Factory(dataProvider="TestInstances",dataProviderClass=TF.class)
public TF(int order)
{
this.order=order;
System.out.println("TF Instance created : "+order);
}
@DataProvider
public Iterator<Object> testDataProvider()
{
return new Iterator<Object>()
{
int counter=1;
int MAX;
{
MAX=TF.this.order;
}
@Override
public boolean hasNext()
{
return counter<=MAX;
}
@Override
public Object next()
{
System.out.println("passing "+counter+" as DP");
return new Object[] {"DP"+counter++};
}
@Override
public void remove()
{
//TODO: IllegalOperationException
}
};
}
@Test(dataProvider="testDataProvider")
public void testStepExecutor(String str)
{
System.out.println("Test method execution : "+str);
}
@AfterClass
public void tearDown()
{
System.out.println("Tear Down: "+this.order);
}
/**
* @return the order
*/
public int getOrder()
{
return order;
}
}
import java.util.Iterator;
导入org.testng.annotations.AfterClass;
导入org.testng.annotations.DataProvider;
导入org.testng.annotations.Factory;
导入org.testng.annotations.Test;
公共类TF
{
@数据提供程序(name=“TestInstances”)
公共静态迭代器testInstancesDP()
{
返回新的迭代器()
{
int计数器=1;
int MAX;
{
最大值=4;
}
@凌驾
公共布尔hasNext()
{
返回计数器数据提供程序的懒散加载不适用于Factory,因为TestNG当前正在运行测试之前调用所有Factory方法。正如我所见,它仍然以相同的方式工作。是否有任何解决方法?没有,我不知道是否可以更改它。但您可以在现有票证上请求该功能