【问题标题】:How to merge multiple simplecov directories inside CircleCI when running parallel_test?运行parallel_test时如何在CircleCI中合并多个simplecov目录?
【发布时间】:2014-12-31 20:11:21
【问题描述】:

我有一个 rails 应用程序,它在 circleci 内使用 rspec 运行 parallel_test

在 Internet 上环顾四周,我将其添加到我的 spec_helper.rb 文件的开头:

if ENV['COVERAGE']
  require 'simplecov'
  # on circleci change the output dir to the artifacts
  if ENV['CIRCLE_ARTIFACTS']
    dir = File.join("..", "..", "..", ENV['CIRCLE_ARTIFACTS'], "coverage")
    SimpleCov.coverage_dir(dir)
    SimpleCov.merge_timeout 3600
    SimpleCov.command_name "rspec_#{Process.pid.to_s}#{ENV['TEST_ENV_NUMBER']}"
  end
  SimpleCov.start 'rails'
end

问题是,结果我为每个 circleci 实例获得了不同的文件夹:

我做错了什么?

【问题讨论】:

  • 没有人在 circle-ci 工作?
  • 不相关,但你的 circle.yml 是什么样的?我无法得到这个工作签名@fabrizioM

标签: ruby-on-rails rspec parallel-testing circleci simplecov


【解决方案1】:

我在 CircleCI 工作。不幸的是,这是行不通的——在所有构建完成运行之前,我们不会从不同构建中收集工件目录,因此在构建期间尝试将它们合并在一起的工具将不起作用。我们已经讨论过为此添加功能,但目前不在我们的功能路线图中,抱歉!

【讨论】:

  • 还是这样吗?我即将通过 scp 实现@frank-c-eckert 的解决方案...
【解决方案2】:

对于仍在寻找此问题的解决方案的任何人,有一种新的可能性:在容器之间使用 ssh 手动同步和合并报告,请参阅docs。但是,这不是一个交钥匙解决方案,您必须自己编写必要的脚本。

否则,您也可以使用外部覆盖服务(我们使用 coveralls codecov)和 CircleCI 的 notification webhook。

编辑

您可以在您的 circle.yml 中添加这样的 webhook(感谢 Ian): notify: webhooks: - url: https://coveralls.io/webhook?repo_token=(your repo token)

【讨论】:

【解决方案3】:

为了解释弗兰克埃克特所说的,Coveralls can do this。但是,该文档略有偏差。

加你Gemfile:

gem 'coveralls', require: false

添加到您的spec/spec_helper.rb:

if ENV['CIRCLECI']
  # If running in CircleCI, run with Coveralls too
  require 'coveralls'
  Coveralls.wear!('rails')
end

添加到您的circle.yml(不是文章所述的coveralls.yml):

notify:
  webhooks:
    - url: https://coveralls.io/webhook?repo_token=your-repo-token

在根文件夹中添加(或创建).coveralls.yml,并添加:

repo_token: your-repo-token

最后进入CircleCI项目配置,添加环境变量:COVERALLS_PARALLEL=true

这对我们有用,但是我们在正确的行数中发现了错误 (reported to Coveralls),但它确实有效,并让我们很好地了解了覆盖范围随时间的变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多