我想对我的测试使用@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")
,对于这两个测试,我会有相同的描述。但是如果我想对每个测试有不同的描述,有没有办法使描述动态化并根据测试进行描述?
答案 0 :(得分:0)
@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);
}
如果您这样做,则会将描述写入每个测试用例的控制台(作为参数输出的一部分)。如果其中一个断言失败,您也会知道哪个描述失败。 我使用类似的技术来识别测试用例,当参数不具有自我描述性并且存在大量测试用例时。