当前位置: 首页 > 面试题库 >

在testng @AfterMethod中检测测试失败

燕禄
2023-03-14
问题内容

如果测试失败,我想截图。与其将所有测试方法都包裹在try / catch块中,不如将这种逻辑添加到以标记的方法中@AfterMethod

如何@AfterMethod在当前测试失败的注解方法中进行检测?


问题答案:

如果带有注释的方法@AfterMethod具有ITestResult参数,则TestNG将自动注入测试结果。(来源:TestNG文档,第5.18.1节)

这应该做的工作:

@AfterMethod
public void tearDown(ITestResult result) {
   if (result.getStatus() == ITestResult.FAILURE) {
      //your screenshooting code goes here
   }        
}


 类似资料:
  • 问题内容: 为了进行研究,我需要从@AfterMethod运行测试方法(@Test)后捕获结果状态(“通过” /“失败”)。 我一直在使用导入org.testng.ITestResult; 我的研究成果使访问多个在线博客后使我的工作变得更加轻松,但是, 即使断言失败 了, 也 似乎并没有像预期的那样成功,因为结果输出总是通过。 我的代码如下: 结果在控制台中: 我的期望是将测试结果转换为变量以通过

  • 我在使用TestNG时发现,当我使用DataProvider时,@aftermethod&@BeforeMethod会被多次调用。在使用从DataProvider传递的所有参数执行@test之后,是否可能只调用一次方法。比如,在DataProvider调用了“Test PrimenumberChecker”5次之后,我们只能调用一次“Drew Down”方法。

  • 问题内容: 是否可以像使用JUnit一样(使用getName()或rules)检索当前正在运行的测试名称? PS我不想使用基于堆栈跟踪的一些自写工具。 问题答案: 根据位于http://testng.org/doc/documentation- main.html的 TestNG文档, 您可以实现可能有助于您解决问题的侦听器。 查看5.16节的TestNG侦听器,尤其是IInvokedMethod

  • 我试图使用XML和TestNG运行一个测试套件,但是我总是同时使用Eclipse和命令行得到相同的消息: 该文件已正确读取,但测试似乎没有运行。 以下是我的testng.xml的内容: 这是我的目录结构在Eclipse中的样子: 此外,这也是我试图通过命令行运行测试套件的方式: 我尝试过通过eclipse清理项目,但似乎没有帮助。我也试过跑步: < code>mvn clean,但它也没有完成工作

  • 22.13.5.测试检测 测试任务检测哪些类是通过检查编译测试类的测试类。默认情况下它会扫描所有.calss文件.可以自定义包含/排除哪些类需不要要被扫描.所使用不同的测试框架(JUnit/ TestNG)时测试类检测使用不同的标准。 当使用JUnit,我们扫描的JUnit3和JUnit4的测试类。如果任一下列条件匹配,类被认为是一个JUnit测试类: 类或父类集成自TestCase或Groovy

  • 问题内容: JUnit中是否有一种方法可以在带注释的@After方法中检测测试用例是否存在测试失败或错误? 一个 丑陋的 解决方案是这样的: 这很丑陋,因为需要注意测试代码中的“基础结构”(withoutFailure标志)。 我希望可以通过@After方法获得测试状态!? 问题答案: 如果您有幸使用JUnit 4.9或更高版本,将完全按照您的要求进行。 分享并享受!