我在单个班级中有多个测试用例。 Test Excel有三个不同的工作表/选项卡1,2和3.我的测试类中有三个测试用例。
我研究了数据提供者注释;我理解的是它会对传递的整个对象执行相同的测试用例。在我的情况下,它将首先测试测试用例1,用于选项卡1中的所有行,测试用例2用于来自选项卡2的所有行,依此类推。
我正在寻找的内容如下:
for i number of rows in excel
Execute test 1 with row i from tab 1
Execute test 2 with row i from tab 2
Execute test 3 with row i from tab 3
(Form i complete, proceed to second form data)
我能做的就是阅读整个Excel把它放在object [] []中。为每个测试用例创建数据提供程序,让它们在for循环中运行。例如:
CLASS
{
for loop
{
data provider 1, 2, 3;
@Test
function testcase1()
@Test
function testcase2()
@Test
function testcase3()
}
}
这是有效的方法还是它违背了TestNG的目的?
答案 0 :(得分:0)
这种方法称为Data-driven testing。您的特定情况是DB部分的一种
恕我直言TestNG功能 - 参数测试,使用相同的方法。它允许您使用不同的值反复运行相同的测试。
- 数据池
- ODBC来源
- CSV文件
- Excel文件
- DAO对象
- ADO对象
我不是静态测试数据的忠实粉丝(请参阅Pesticide paradox),我建议您每次运行生成Excel文件(作为Fresh Fixture)或者您通过了动态生成测试数据到您的测试。
答案 1 :(得分:0)
DataProvider也将Method作为参数。
您可以根据testmethod调用返回对象。
i.e. if testmethod.name = testcase1 - read tab 1 - create object and return
...and so on