【发布时间】:2013-08-26 15:55:24
【问题描述】:
我看到了一些类似的问题,但没有一个可以直接回答我的问题...... 我正在使用带有 TestNg 和 Java 的 Selenium Webdriver 2.0,我正在寻找一种更好的方法来控制测试运行的顺序。 我真正想要的只是测试用例按照它们在类中编写的顺序运行。 它很直观。这很简单。它的可维护性。我真的很惊讶它不是 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
【问题讨论】:
-
我个人不明白你为什么想要这个。测试的本质是,在大多数情况下,您希望您的测试是不同的和独立的。您能否向我们提供更多信息,说明您的情况为何需要这样做,我们可以为您提供另一种方法吗?
-
为什么要按顺序运行 tcs?维护?我认为维护更多的是与您的编码有关,然后是执行顺序..忘记顺序..并行运行
-
是的,我期待这些问题。我读过的大多数帖子都在寻找一种方法来控制 testNg 中的排序得到这个响应。有时顺序很重要。例如,您需要创建用户并分配权限,并以管理员身份注销,以新用户身份登录并验证他们可以看到报告的场景。是的,这可能是一个测试用例。但实际上它应该更像是五个或十个较小的测试。此外,如果一个字段在用户创建中没有正确接受电话号码,您不希望它停止整个测试。排序很重要,特定的依赖项也很重要。
-
正是我面临的问题!我在 TestNG 的 github 存储库上发布了一个问题作为功能。到现在都没有回应 :( TestNG 的不灵活正在变成一场噩梦。
-
是的,完全同意。无法以最直观的方式运行测试来设计和维护(按编写顺序)只是 testNG 的一个明显缺陷。我们真的不应该用所有这些黑客来修补它,让它做它默认应该做的事情。这么聪明的开发者怎么会错过这么明显的要求。