我已经看到发布了一些类似的问题,但没有一个可以直接回答我的问题......我正在使用 Selenium Webdriver 2.0 和 TestNg 和 Java,我正在寻找一种更好的方法来控制测试运行的顺序。我真正想要的只是测试用例按照它们在类中编写的顺序运行。它很直观。这简单。它的可维护性。我真的很惊讶它不是 testNg 的默认设置。(当编码器没有明确要求时,为什么要应用一些随机排序?)
无论如何,我知道我可以在我的 testng xml 中添加一个方法列表,但到目前为止我有 130 个测试(还有数百个!),这样的方法列表对于未来的维护来说太多了。例如,当我添加十个测试方法时,我必须记住将所有这些方法添加到我的 xml 文件中。如果我错过添加一个会发生什么?我永远不会注意到它从未运行过......
所以这个解决方案将是一场维护噩梦:
<test name="BVTQA01">
<classes>
<class name="TestPackage.BVT">
<methods>
<include name="testLogin"></include>
<include name="testAddToCart"></include>
...
<include name="test999 etc"></include>
</methods>
</class>
</classes>
</test>
我也试过保留顺序:
<test name="BVTQA01" preserve-order="true">
<classes>
<class name="TestPackage.TestBVT" />
</classes>
</test>
但如果我不添加方法列表和“包含名称”列表的维护噩梦,它显然会被忽略......
所以目前我只是在 xml 文件中列出我的测试类(如上 - TestBVT,它有 20 个方法等),并使用测试本身的“取决于”注释来控制测试运行顺序。然而,这并不理想,因为我正在创建对每个方法的依赖项。我想删除它们不是真正必要的依赖项。当存在真正的依赖关系时,我只想使用“依赖于”。
我还搜索了从我的 @Test 注释方法自动创建 xml。但是发布的解决方案并不清楚如何实际实施。
任何关于如何让 testNg 从上到下按顺序运行我的测试类的任何反馈,没有任何随机排序或维护繁重的列表生成将是美妙的。提前致谢,
JR