运行 all 测试数据提供者的一次迭代等等,直到数据提供者中的数据结束
Run all Test for one iteration of dataprovider and so on till the end of data in data provider
实际上数据提供者有日期和品牌名称,所以我的第一个@test 只能 select 日期和品牌名称,然后在第二个@test 中,它将针对相同的日期和品牌名称获取数据,并在第二次迭代中首先@test 从@dataprovider 获取第二个日期和第二个品牌名称,然后第二个@test 将完成自己的工作等等,请帮助我
提前致谢。
示例如下:
`@DataProvider
public static Object[][] dp() {
return new Object[][] {
new Object[] { "23", "Online" },
new Object[] { "24", "Online" },
};
}
@Test(dataProvider = "dp")
public void DateAndBrand(String date,String game) throws InterruptedException{
System.out.println(date" "+game)
}
@Test
public void CheckDifference(){
System.out.println("in second Test");
}
我想要类似这样的输出:
23 Online
in second Test
24 Online
in second Test
我的 testng.xml 文件如下:
<suite name="Automation" parallel="false">
<test name="Data Difference">
<classes>
<class name="monitoring.DataCompareAuto">
<methods>
<include name="DateAndBrand"/>
<include name="CheckDifference" />
</methods>
</class>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
每当我们使用带有 @Test
注释的 dataProvider 属性时,该方法被调用的次数是 @DataProvider
返回的数组中对象的数量。
要实现您所指的输出,您可以使用 ITestListener
界面或 TestListenerAdapter
class.
使用这些侦听器,您可以在开始、成功、失败等时拦截每个测试方法。您可以在那里执行任何操作。
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class TestInterceptor implements ITestListener {
@Override
public void onFinish(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStart(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailure(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSkipped(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestStart(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSuccess(ITestResult arg0) {
System.out.println(" Can perform CheckDifference operation here.");
}
}
所以在这种情况下你的输出将是
23 Online
Can perform CheckDifference operation here.
24 Online
Can perform CheckDifference operation here.
in second Test
Can perform CheckDifference operation here.
记得在您的 testng.xml 文件中添加侦听器
实际上数据提供者有日期和品牌名称,所以我的第一个@test 只能 select 日期和品牌名称,然后在第二个@test 中,它将针对相同的日期和品牌名称获取数据,并在第二次迭代中首先@test 从@dataprovider 获取第二个日期和第二个品牌名称,然后第二个@test 将完成自己的工作等等,请帮助我 提前致谢。 示例如下:
`@DataProvider
public static Object[][] dp() {
return new Object[][] {
new Object[] { "23", "Online" },
new Object[] { "24", "Online" },
};
}
@Test(dataProvider = "dp")
public void DateAndBrand(String date,String game) throws InterruptedException{
System.out.println(date" "+game)
}
@Test
public void CheckDifference(){
System.out.println("in second Test");
}
我想要类似这样的输出:
23 Online
in second Test
24 Online
in second Test
我的 testng.xml 文件如下:
<suite name="Automation" parallel="false">
<test name="Data Difference">
<classes>
<class name="monitoring.DataCompareAuto">
<methods>
<include name="DateAndBrand"/>
<include name="CheckDifference" />
</methods>
</class>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
每当我们使用带有 @Test
注释的 dataProvider 属性时,该方法被调用的次数是 @DataProvider
返回的数组中对象的数量。
要实现您所指的输出,您可以使用 ITestListener
界面或 TestListenerAdapter
class.
使用这些侦听器,您可以在开始、成功、失败等时拦截每个测试方法。您可以在那里执行任何操作。
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class TestInterceptor implements ITestListener {
@Override
public void onFinish(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStart(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailure(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSkipped(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestStart(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSuccess(ITestResult arg0) {
System.out.println(" Can perform CheckDifference operation here.");
}
}
所以在这种情况下你的输出将是
23 Online
Can perform CheckDifference operation here.
24 Online
Can perform CheckDifference operation here.
in second Test
Can perform CheckDifference operation here.
记得在您的 testng.xml 文件中添加侦听器