我正在使用 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/