我有一些用Java编写的硒TestNG测试,这些测试依赖于第一个初始测试,该用户将用户注册到测试的平台中并通过了教程,所有其他测试都使用该初始测试中的登录凭据。 / p>
到目前为止,我还使用了重试逻辑(IRetryAnalyzer):https://www.swtestacademy.com/retry-failed-tests-testng-iretryanalyzer/ 重试失败的测试最多4-5次,因为主机服务器有时会在随机点产生错误,而该错误无法修复atm。
如果初始(注册)测试在前两次失败,并通过了第三次执行,则所有依赖于它的进一步测试都将失败,并发生以下异常:
"java.lang.Throwable: depends on not successfully finished methods in group..."
所以测试结果将如下所示:
测试A(寄存器)-失败。 测试A(寄存器)-失败。 测试A(寄存器)-通过。 测试B(取决于A)-失败。 测试C(取决于A)-失败。
测试B和C失败了,因为测试A最初是第一次失败,所以以某种方式记录为失败。 问题是-可以以某种方式进行可靠的测试,即它们仅依赖于通过的测试A实例,还是至少尝试执行它们,尽管事实是测试A多次失败。
请注意,在这种情况下,不建议使用优先级参数。 谢谢。
答案 0 :(得分:2)
使用'alwaysRun'参数。将其附加到测试B
示例
@Test(alwaysRun = true,groups = {“” random_group“})