如何为数据提供程序测试提供动态说明



我想为我的测试使用@DataProvider注释,如以下示例所示:

@DataProvider(name="testdata")
 public Object[][] testData(){
    return new Object[][]{
        {"http://www.google.com", "Google"}, 
        {"http://twitter.com", "Twitter"}
    };
  }
  @Test(dataProvider = "testdata")
  public void test(String url, String title) {
    driver.get(url);
    Assert.assertTrue(driver.getTitle().contains(title));
  }

在上面的情况下,我们有两个具有不同目的的测试用例,因此我想有不同的描述。

但是如果我使用 @Test(dataProvider = "testdata", description = "some description") ,对于两个测试,我将有相同的描述。但是,如果我想对每个测试进行不同的描述,有没有办法使描述动态并根据测试进行描述?

 @DataProvider(name="testdata")
 public Object[][] testData(){
    return new Object[][]{
        {"http://www.google.com", "Google", "description1"}, 
        {"http://twitter.com", "Twitter", "description2"}
    };
  }
  @Test(dataProvider = "testdata")
  public void test(String url, String title, Spring description) {
    driver.get(url);
    Assert.assertTrue(driver.getTitle().contains(title), description);
  }

如果执行此操作,则会将每个测试用例的说明写入控制台(作为参数输出的一部分)。如果其中一个断言失败,您还将知道哪个描述失败。我使用类似的技术来识别测试用例,当参数不是自我描述的并且有很多测试用例时。

最新更新