如何在所有测试基于数据提供者的输入运行后删除数据?

时间:2017-06-01 14:02:50

标签: java selenium automated-tests testng testng-dataprovider

我使用不同的输入进行测试,因此使用@DataProvider但在输入之前,从Object[][]传递给测试,我想创建一些通用的所有数据来测试所有不同的输入

@DataProvider(name = "test")
public Object[][] createData() {
    //create some data which is common for both john and bob
    return new Object[][] { { "john" }, { "bob" } };
}

@Test(dataProvider = "test")
public void userOp(String name) {
    //Perform some operations with user mention in `name`. For now let's just print the names
    System.out.println(name);
}

一旦所有测试,运行不同的输入(即john和bob),我想删除我在数据提供者方法中创建的数据。

注意我可以使用@AfterClass来删除这些数据但是这可能会破坏我在测试类中的其他测试,因此我想删除数据,一旦我完成测试,是它的创建。

有人可以建议如何实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

使用@AfterMethod参数声明ITestResult。在ITestResul中,您可以找到测试方法中使用的确切参数并删除相关数据。在@AfterClass中只删除您的常用数据。