如何在iTestListener的方法“onTestStart”中获取测试数据(由dataprovider提供)

时间:2015-05-07 09:54:06

标签: java testng

所以我想解决的问题是:

我有一个测试类和一个protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { try { bool handled = false; if (keyData == Keys.Escape)//Text box reset on ESC key press { Some Code(); return true; } //Data grid row focus move up and down with Up & DOWN key press return (handled || base.ProcessCmdKey(ref msg, keyData)); } catch (Exception) { throw; } } 方法@test,它接收来自数据提供者的数据。我想在启动runtest方法之前,根据测试数据运行测试将从数据提供程序接收执行某些操作。

为此,我查看了runtest,它有一个方法iTestListener,但我无法弄清楚如何在方法中获取该运行实例的测试数据。

欢迎任何其他好方法。

1 个答案:

答案 0 :(得分:0)

创建一个扩展TestListenerAdapter

的类
 public class TestListener extends TestListenerAdapter {
    @Override
    public void onTestStart(ITestResult tr) {
       super.onTestStart(tr);
       Object[] params = tr.getParameters();
       String a = (String)params[0];
       int b = (int)params[1];
       //Add whatever you want to do before the test case starts
    }
 }

向测试类添加注释

@Listeners(ResultReporter.class)
public class CoreSingleApplicant1TestCase {

   @Test(dataprovider = "dataprovider",dataProviderClass = StaticProvider.class))
   public void runtest(String a, int b){
   }
}

Dataprovider类

public class StaticProvider {
  @DataProvider(name = "create")
  public static Object[][] createData() {
    return new Object[][] {
      new Object[] { 
         {"String", 1},
         {"Integer",2} }
    }
  }
}