rspec 创建报告后挂钩

rspec hook after report gets created

在创建报告文件后 运行 秒是否有 rspec 挂钩?

例如,在我的 .rspec 中,我包含了:

--format json --out test_results/rspec.json

并且我想 post 处理此文件并在别处发布指标。我强烈不希望创建单独的脚本,而是希望将其作为我的 bundle exec rspec 命令的一部分来执行。创建此文件后是否有 RSpec 挂钩 运行?

谢谢!

实现此目的的一种方法是基于 JSON 格式化程序实现您自己的格式化程序。像这样的东西可以工作:

class CustomFormatter < RSpec::Core::Formatters::JsonFormatter 
  RSpec::Core::Formatters.register self, :example_started

  def close(_notification)
    super

    # Do your post processing here...
  end
end

然后您可以像这样使用您的自定义格式化程序

rspec --require ./custom_formatter.rb --format CustomFormatter

RSpec::Core::Formatters::JsonFormatter 被标记为私有,因此可以随时更改。您必须考虑是否要冒险在未来 RSpec 升级中进行更改和适应。

否则我建议只使用自定义脚本。它应该很简单,里面只有 &&|,比如

rspec --format json | ./run_postprocessing

https://relishapp.com/rspec/rspec-core/docs/formatters/custom-formatters https://github.com/rspec/rspec-core/blob/main/lib/rspec/core/formatters/json_formatter.rb#L56