仅在运行所有测试(基于数据提供者的输入)之后,才如何删除数据? [英] How to delete data only after all tests, based on inputs from data provider, are run?

查看:80
本文介绍了仅在运行所有测试(基于数据提供者的输入)之后,才如何删除数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've a test with different inputs, hence used @DataProvider but before inputs, from Object[][], passed to a test, I want to create some data which is common to test with all different inputs

@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);
}

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

Once ALL tests, with different inputs(ie. john and bob) are run, I want to delete data that I created in data provider method.

注意,我可以使用@AfterClass删除此数据,但这可能会使测试类中的其他测试弄乱,因此我想在完成测试后删除数据已创建.

NOTE I can use @AfterClass to delete this data but that can mess my other tests in test class hence I want to delete data, once I'm done with the test, for which it was created.

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

Can someone suggest how this can be achieved?

推荐答案

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

Declare @AfterMethod with ITestResult parameter. In ITestResult you can find exact parameters used in your test method and delete related data. In @AfterClass just delete you common data.

这篇关于仅在运行所有测试(基于数据提供者的输入)之后,才如何删除数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆