java - JUnit 测试失败挂钩上的 Cucumber

2024-04-17

我们使用 Cucumber-JVM 编写验收测试脚本,并使用 JUnit 来执行它们(通过 JUnit Cucumber 运行程序)。由于这些测试涉及 Selenium WebDriver,因此我希望能够在测试失败时截取屏幕截图(我有代码)。

如果我只是添加一个 WebDriver onException 挂钩,则当断言失败时将不会截取屏幕截图。我希望能够向 Cucumber 运行程序添加 JUnit 执行侦听器,但 API 似乎不支持此操作(Cucumber.class 上没有 addListener 方法)。

有人可以帮忙吗?感谢团队。


我一般都会截图@After在每个黄瓜场景之后都会调用的钩子。@Afterhook 方法需要一个特殊的Scenario对象,以便您可以将屏幕截图嵌入报告中。以下是有关如何在场景失败时截取屏幕截图的示例,

   @After
    public void tearDown(Scenario scenario) {
        try {
            if (scenario.isFailed()) {
                final byte[] screenshot = ((TakesScreenshot) driver)
                        .getScreenshotAs(OutputType.BYTES);
                scenario.embed(screenshot, "image/png");
            }
        } finally {
            driver.quit();
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java - JUnit 测试失败挂钩上的 Cucumber 的相关文章

随机推荐

  • 从环境中检索“一周的第一天”和“CalendarWeekRule”

    我认为这应该很容易 但我自己 还 找不到它 我需要知道是否可以从系统环境和 或本地设置中检索这两个值 我知道在我的国家 荷兰 这些价值观应该是 每周第一天 星期一 日历周规则 FirstFullWeek 但我不想为此设定固定的规则 您可以从
  • 使用 WinForms TreeView 递归目录列表?

    我想制作一个树视图 显示系统上的所有文件夹 并且仅显示音乐文件 例如 mp3 aiff wav 等 我记得读到我需要使用递归函数或类似的东西 通常大多数计算机都有数千个文件夹和数十万个文件 因此递归地在 TreeView 中显示所有这些文件
  • D3 V6 - 缩放和拖动功能

    在 Angular 7 中使用 D3 v6 创建世界地图 Choropleth 从 Angular 精简为纯 JavaScript 从 NaturalEarth 收集并在 mapshaper 中编译的形状文件以创建 GeoJSON 只对国家
  • jQuery-UI 主题 - CSS 大小差异

    当使用jQueryUI http www jqueryui com home网站上的示例 主题浏览器 http www jqueryui com themeroller 事情看起来很棒 但是 当我将代码和主题放入我的应用程序中时 大小调整完
  • Tornado with_timeout 正确用法

    我有一个运行一些 shell 命令的网络服务器 该命令通常需要几秒钟 但在某些情况下需要更多时间 在这种情况下客户端 不是网络浏览器或curl 会断开连接 我无法修复客户端 所以我考虑修复服务器 它基于龙卷风框架 我使用tornado ge
  • 十六进制常数 = 格式错误的数字?

    我有一个 Lua 脚本 我试图在其中使用十六进制数字 0x 如果我使用官方 Windows 二进制文件在控制台中运行此脚本 它可以正常工作 但是如果我在我的应用程序中运行它 简单的 dofile 我得到 malformed number n
  • Easy Tracker 中的 Google 分析自定义屏幕名称

    我有一个具有重用活动的应用程序 它用于不同的目的 因此仅跟踪活动名称对我没有帮助 这就是为什么我想在仍然使用 EasyTracker 的同时手动定义屏幕名称 我的代码如下所示 EasyTracker t EasyTracker getIns
  • Python:找到出现次数最多的单词?

    我试图让我的程序报告文本文件中出现最多的单词 例如 如果我输入 你好 我喜欢馅饼 因为它们非常好吃 程序应该打印出 最喜欢的馅饼 执行选项 3 时出现此错误 KeyError h Prompt the user to enter a blo
  • chrome 扩展,弹出窗口的高度

    在我看来 弹出窗口的高度有 489 像素的限制 如果我将弹出窗口的主体元素设置为 600 像素的高度 则弹出窗口将获得一个滚动条 因为内部页面变大 但弹出窗口不会更改其大小 是否可以使弹出窗口的高度大于 489 像素 Set height两
  • 在 iOS 12 中以编程方式从屏幕时间获取应用程序使用情况

    我正在开发一个项目 我想获得其他应用程序的使用时间 苹果发布了iOS 12并提供了新功能Screen Time 我想知道Apple是否提供任何方式或API来从中获取数据 不可以 在 iOS 上 每个应用程序都在自己的沙箱中运行 无法查看其他
  • 在 Angular 4 中使用权限的最佳方式是什么?

    在我的 Angular 4 项目中 我想使用从 API 获得的权限 权限保存为带有 ids 的数组 某些单个元素 例如用户或博客文章 具有允许权限的属性 这些属性允许或不允许编辑或删除等操作 作为带有 id 的数组 在 Angular 4
  • CruiseControl.Net + SSL

    因此 我刚刚在我的 PC 上安装了 Cruisecontrol NET 并且使用 VisualSVN 通过 https 和 虚拟 证书进行 SVN 托管 所有这些都在我的本地电脑上 问题是 当我尝试运行 Cruisecontrol NET
  • 如何在页面加载时将页面滚动到底部?

    要求 我想在页面加载时将内容滚动到页面底部 这是我的 html 代码
  • 宏定义确定大端还是小端机?

    是否有一行宏定义来确定机器的字节顺序 我正在使用以下代码 但将其转换为宏会太长 unsigned char test endian void int test var 1 unsigned char test endian unsigned
  • 默认情况下,ASP.NET MVC 4 是否需要额外的 XSS 处理

    默认情况下 ASP NET MVC 4 会忽略帖子消息中的 HTML 输入 如果我没有明确接受 HTML 是否需要编写任何代码来保护我的网站免受 XSS 攻击 我不会使用 AllowHtml or ValidateInput false 我
  • 镜头变焦模糊变量

    我在使用时遇到困难zoom函数由下式给出Control Lens 使用我的自定义 monad 变压器HearthMonad 我不知道如何满足GHC的 模棱两可型 投诉 有问题的代码位于drawCard 我该如何解决这个问题 我是否必须创建自
  • phpmyadmin自动注销时间

    如何更改 phpmyadmin 自动注销时间 它会在 1440 秒后自动注销 这对我来说非常低 如何更改选项或完全删除登录请求 更改 php ini 将更改服务器上运行的所有网站的会话持续时间 要仅为 PhpMyAdmin 更改它 请打开c
  • 使用单独的规则定义和实例化时,Boost Spirit X3 AST 无法处理语义操作

    我尝试将 Boost Spirit X3 与语义操作结合使用 同时将结构解析为 AST 如果我使用没有单独定义和实例化的规则 它就可以正常工作 例如 include
  • Facebook 应用程序选项卡 -> 使用 PHP 进行外部链接

    我目前在 Facebook 选项卡上有一个应用程序 我想知道是否有办法让我深入链接到该应用程序选项卡上的项目 例子 用户在应用程序中 正在搜索书籍 找到一本他们喜欢的书 并想与朋友分享 他们点击分享它 我可以提取所有信息 但是我没有深层链接
  • java - JUnit 测试失败挂钩上的 Cucumber

    我们使用 Cucumber JVM 编写验收测试脚本 并使用 JUnit 来执行它们 通过 JUnit Cucumber 运行程序 由于这些测试涉及 Selenium WebDriver 因此我希望能够在测试失败时截取屏幕截图 我有代码 如