首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何覆盖TestNG传递或失败结果

如何覆盖TestNG传递或失败结果
EN

Stack Overflow用户
提问于 2015-05-21 18:25:57
回答 1查看 1.2K关注 0票数 0
  • 我正在使用TestNG运行数据驱动的测试。
  • 我的数据是从外部文件读取的。
  • 我有一个重试逻辑,它本质上是同一个类中不同的测试方法,但只重试上一个测试中失败的实体。我用优先权来控制 测试(dataProvider=“customTestDataProvider”,优先级= 1)公共空空testSomething(final ITestContext testContext,final CustomTestDataItem testData)抛出CustomTestException{ setTestData(testData,testContext);performStep1();performStep2();validateResult();}@TestdataProvider=(“customTestDataProvider”,优先级= 2)公共空空testSomethingRetry1(final )抛出{en22#(,);} @Test(dataProvider="customTestDataProvider“,优先级= 3)公共空testSomethingRetry2(final ITestContext testContext,final CustomTestDataItem testData)抛出CustomTestException{ testSomething(testContext,testData);}
  • customTestDataProvider知道该方法已失败的testData项,因此在testSomethingRetry1中只会提供失败的测试数据。
  • 如果测试方法在testSomething中失败,则在testSomethingRetry1中重试,但testNG认为它在testSomething中失败了
  • 因此,我需要一个自定义逻辑来确定套件是否已通过或失败。如何用我确定的结果覆盖testNG结果(通过/失败)?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 19:25:25

与其重复测试方法,我建议使用org.testng.IRetryAnalyzer,它基本上再次运行失败的测试。您可以在这里看到一些例子,http://seleniumeasy.com/testng-tutorials/execute-only-failed-test-cases-using-iretryanalyzer

但是,如果您确实希望覆盖结果,您可以使用侦听器并实现获取ITestResult的方法。在这个对象中,您可以检查方法类/名称/结果/等等,并更改其中的一些属性(包括结果)。

http://testng.org/javadocs/org/testng/ITestListener.html http://testng.org/javadocs/org/testng/IInvokedMethodListener.html

或者整个测试套件

http://testng.org/javadocs/org/testng/ISuiteListener.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30381568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档