背景
我正在通过testng-failed.xml运行失败的测试。重新运行完成后,我将两者合并(testng-results.xml)以生成合并的合并xml(以这样的方式编写合并逻辑,即它将忽略第一次运行失败但在重新运行中通过的测试)。合并逻辑检查<test-method>
的{{1}}属性和'name'
以唯一地标识测试用例。
对于正常测试以及数据提供者测试(由于数据提供者测试均显示此<params>
标签信息),它都可以正常工作,但是对于使用<params>
设计的测试,testng- results.xml显示所有具有相同@factory
属性的<test-method>
标签(这是预期的),但是它们('name'
)没有<testng-method>
属性。没有<params>
属性使得无法<params>
进行唯一标识,这破坏了我的合并xml逻辑
此外,由于这个原因,当我执行testng-failed.xml(重新运行部分)时,它总是使用第一个工厂testdata而不是测试失败的实际工厂testdata运行测试。 (这可能是由于在testng-failed.xml中没有用于测试失败的<test-method>
属性而导致的)。需要AFAIK 'invocation-numbers'
才能运行正确的测试数据。我可以看到testng-failed.xml中存在'invocation-numbers'
属性,该属性用于具有简单@ data-provider的测试,但不适用于具有@factory
有人遇到这个问题吗?
更新