java - TestNG - 传递包含所有测试输入数据的 CSV 文件

标签 java unit-testing testng

我正在使用 TestNG 框架进行单元测试。使用 DataProvider 注释,我能够成功地将输入数据从 CSV 文件传递​​到测试方法。

问题是我的测试类中有多种测试方法,每种方法都需要不同的数据集作为测试的输入。所有输入都存在于单个 csv 文件中。我知道我可以通过在类级别使用 DataProvider 注释来指定单个输入文件。但是,是否有任何方法可以仅使用输入 CSV 文件中的特定数据来运行测试文件中的每个测试用例?

更清楚地说,我的测试类(例如 TestDemo)将有 3 个测试方法(例如 test1、test2、test3)。 有一个 CSV 文件包含所有 3 种方法的测试数据。无论如何,我是否可以将其指定为输入文件,但仅使用用于该测试的数据运行每个测试?

提前致谢。

最佳答案

我使用Apache Metamodel在 @DataProvider 方法中读取 .CSV 文件并返回二维数组。非常简单。

wrote an example of doing it here ,当然是使用 TestNG。具体来说,this class

请记住,如果您将电子表格行中的所有项目放入 Object[] 中,那么您可以将其作为单个对象直接传递给您的测试方法,而且 @BeforeMethod 能够在之前访问该行数据你的实际测试甚至开始了。这是 JUnit 4.x 无法做到的。

关于java - TestNG - 传递包含所有测试输入数据的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35594468/

相关文章:

java - 嵌套 BiFunction 的深度(或限制,如果有的话)是多少

javascript - useFakeTimers 和异步回调

android - AWS Device farm 似乎忽略了 TestNG 注释

java - 断言 double 组精确相等

java - 如果只有一个线程在运行(main)并且调用了 sleep(1000),线程会 hibernate 1 秒还是至少 1 秒?

java - 由 : java. sql.SQLException : ORA-06550: line 1, 第 7 列引起:PLS-00306:调用 'PR_SP_FAHMI' 时参数数量或类型错误

java - 为什么findFragmentById总是返回null

php - 单元测试 Laravel 5.1 中的用户身份验证

python - 单元测试 python 请求?

java - 从 Jenkins(Maven 项目)执行 TestNG.xml