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