selenium-webdriver - Testng 无法记录测试失败
问题描述
我已经使用 testng 来运行测试用例。ITestResult 监听器用于捕获测试状态,在 after 方法中给出。请帮助为什么testng没有记录测试失败?
解决方案
如果您想截取失败测试的屏幕截图,以下代码可能会对您有所帮助。
您必须在 xml 测试套件中配置侦听器
<listeners> <listener class-name="package.your.listener.ScreenshotListener" /> </listeners>
实现你的监听器
公共类 ScreenshotListener 扩展 TestListenerAdapter {
@Override public void onTestFailure(ITestResult result) { super.onTestFailure(result); if (!result.isSuccess()) { WebDriver driver = getDriverByResult(result); String methodName = result.getName(); try { File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); String reportDirectory = new File(System.getProperty("user.dir")).getAbsolutePath() + "/target/surefire-reports"; File destFile = new File(reportDirectory + "/failure_screenshots/" + buildFileNameByMethod(methodName)+ ".png"); FileUtils.copyFile(scrFile, destFile); Reporter.log("<a href='" + destFile.getAbsolutePath() + "'> <img src='" + destFile.getAbsolutePath() + "' height='100' width='100'/> </a>"); } catch (IOException e) { e.printStackTrace(); } } }
推荐阅读
- java - 如何在 flink minikube 集群中添加依赖?
- c# - 在 .NET Core 2.1 中使用 [FromBody] 时处理模型绑定错误
- c# - 母版页中声明的枚举无法从内容页访问
- java - 在 Java 中解码和替换字符串中的十六进制值
- batch-file - Jenkins 作业在命令启动后卡住
- matrix - 通过按下矩阵中的键移动俄罗斯方块
- powershell - 用于归档所有文件最后修改日期为特定月份的脚本
- java - 如何使用文本转语音节 java API?
- python - Python BeautifulSoup 'NavigableString' 对象没有属性 'get_text'
- powerbi - 按年份计算不同级别数据的平均值