Ruby 单元测试:在每次失败的测试后运行一些代码

2023-12-19

在 ruby​​ 单元测试中断言失败后,是否有一些干净而优雅的方法可以立即执行我的代码Test::Unit, 前teardown被处决?

我正在做一些自动化 GUI 测试,并且想在出现故障后立即截取屏幕截图。


如果您使用的是 1.9,请不要使用 Test::Unit::TestCase 作为基类。将其子类化并覆盖 #run_test 进行救援,截取屏幕截图并重新引发:

class MyAbstractTestCase < Test::Unit::TestCase
  def run_test( *args )
    super(*args)
  rescue
    snapshot()
    raise
  end
end

或者,我认为这实际上是最简洁的方法,您可以使用 before_teardown 挂钩:

class MyTestCase < Test::Unit::TestCase
  add_teardown_hook do |tc|
    screenshot() unless tc.passed?   
  end
end

这不适用于 1.8 的测试/单元,但适用于 1.9 中的小型测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby 单元测试:在每次失败的测试后运行一些代码 的相关文章

随机推荐

  • Summernote 中的转义 HTML

    我正在使用名为 Summernote 的所见即所得 wysiwyg 我将其值发送到服务器 并在服务器上使用 HTML Purifier 对其进行净化 之后我将其保存到数据库 mysql 然后 我需要在所见即所得中显示纯化的 html 因此将
  • strtol() 返回错误值

    我这里有一个奇怪的 当我传入以下字符串时 strtol atol 和 atoi 都会返回错误的值 long test strtol 3087663490 p 10 根据我的调试器 它返回 2147483647 我完全被难住了 有什么建议吗
  • Rstudio loadNamespace(name) 中的 Rstudio knit pdf:没有名为“rmarkdown”的包

    我刚刚更新到 Rstudio 版本 0 98 1074 当我尝试使用带有脚本的编译笔记本或带有 rmd 的 Knit pdf 时 我得到 loadNamespace 错误错误 没有名为 rmarkdown 的包 但我可以打字rmarkdow
  • Outlook MailItem:如何区分邮件是传入还是传出?

    我正在用 C 编写 VSTO Outlook 插件 我需要区分给定的 MailItem 是传入还是传出 或者两者都不是 例如当它是草稿时 有什么万无一失的方法可以做到这一点吗 我现在拥有的最佳解决方案是获取收件人 抄送和密送的列表 从活动帐
  • 由正方形网格组成的多边形

    我正在寻找一种算法来查找围绕连续的没有孔的正方形网格的多边形 如下所示 我已经让每个网格方块存储有关它们组成的周围区域的边缘类型的数据 即顶部 右上角 顶部底部 无边缘等 所以我认为这数据可以被算法利用 如果有人可以为这种算法提供一些伪代码
  • 如何像 SQL 连接一样使用 OData Expand?

    我试图弄清楚如何完成相当于 select from Users u inner join Comments c on c UserId u Id where Id 1569 表别名以获得更好的 SQL 可读性 在 StackOverflow
  • MAMP mySQL Snow Leopard 中的 Ruby On Rails

    我正在尝试找到在 MAMP 服务器上运行 Ruby on Rails 并使用 MAMP 的 mySQL 数据库的分步说明 我也在雪豹上 我已经阅读了 Hivelogic 的相关文章 但我真的不想编译rails ruby 和mySQL 大家有
  • 如何在mathematica中任意指定线条的粗细或点的大小

    我知道有一些选择 例如PointSize Large or PlotStyle gt Thick 但是如果我想要更大或更厚怎么办 谢谢 PointSize number 相对于图像的大小 AbsolutePointSize number 绝
  • 不使用 Visual Studio GUI 设计器(工具箱)构建 C# GUI

    在 Java Swing 中 我们只需编写 Java 代码即可创建 GUI 例如在 Eclipse 中 使用 NetBeans 工具箱将组件拖放到 UI 是可选的 我想知道C 中是否有相同的概念 我可以将组件放入 GUI 中并仅通过编码来添
  • 如何将一系列数组元素克隆到新数组?

    我有一个包含 10 个元素的数组 X 我想创建一个新数组 其中包含 X 中从索引 3 开始到索引 7 结束的所有元素 当然 我可以轻松编写一个循环来为我完成此操作 但我想让我的代码尽可能干净 C 中有没有一种方法可以帮我做到这一点 类似于
  • bash 如何从管道输入或命令行参数中读取

    我想从管道或命令行参数读取一些数据 比如 1 以提供的为准 优先考虑管道 该片段告诉我管道是否打开 但我不知道要在里面放什么以免阻塞脚本 test sh 使用read or cat if t 0 then echo nopipe DATA
  • WPF 将 FrameworkElement 事件绑定到命令

    我怎样才能绑定一个UserControl s FrameworkElement事件到视图模型命令 我使用 MVVM 和 Prism 因此视图和视图模型之间的清晰分离会很好 我尝试了多种方法 但都不起作用
  • org.springframework.security:org.springframework.security.web:jar:3.0.5.RELEASE 的 POM 丢失,没有可用的依赖信息

    当包含进pom xml
  • 如何将 QCompleter 与 InputDialog 一起使用?

    我正在编写一个 Python 应用程序 用户可以在 QInputDialog 中输入字符串 我如何使用 QCompleter 使输入更容易 我已经在不同的网站上搜索并阅读了文档https doc qt io qt 5 qcompleter
  • iTextSharp 的 Rtf 支持哪里去了

    在版本 5 中 iText 已分为两个分支 iText PDF 和 iText RTF 我用的iTextSharp现在好像是iText PDF NET 是否有 iText RTF 端口 我认为 iTextSharp 主页会提到这一点 但几乎
  • 跨多个 WAR 文件的 java web 模板

    我有一个设计得很糟糕的多 WAR Web 应用程序 有一个 WAR 负责处理针对数据库的某些授权 并使用 jsp 标记库定义标准网页 主 WAR 基本上检查用户的权限 然后基于此显示指向其他已部署 WARS 的上下文路径的链接 其他部署的每
  • Entity Framework Core - 迁移 - 没有为此对象定义无参数构造函数

    我正在 Visual Studio 2017 中使用最新的 Net Core 和 EF Core 我创建了一个模型 并且运行良好 此后我进行了一些修改 当我尝试添加新的迁移时收到以下错误 Build succeeded 0 Warning
  • 从 s3 下载到操作工作流程中

    我正在开发 2 个 github 操作工作流程 训练模型并将其保存到 s3 每月 从 s3 下载模型并将其用于预测 每日 Using https github com jakejarvis s3 sync action https gith
  • NSTimeInterval 格式化

    我想带着我的NSTimeInterval并将其格式化为字符串 00 00 00 小时 分钟 秒 做这个的最好方式是什么 从 iOS 8 0 开始 现在有NSDateComponentsFormatter其中有一个stringFromTime
  • Ruby 单元测试:在每次失败的测试后运行一些代码

    在 ruby 单元测试中断言失败后 是否有一些干净而优雅的方法可以立即执行我的代码Test Unit 前teardown被处决 我正在做一些自动化 GUI 测试 并且想在出现故障后立即截取屏幕截图 如果您使用的是 1 9 请不要使用 Tes