如果覆盖率%不高于阈值(Ruby),则使Travis失败

如果覆盖率%不高于阈值(Ruby),则使Travis失败,ruby,travis-ci,Ruby,Travis Ci,如果我的覆盖率报告不是100%,我如何使Travis CI构建失败? 我的.travis.yaml看起来像这样: language: ruby rvm: - 2.2.4 install: bundle install script: - rspec spec/features/* - coverage report --fail-under=100 但这是特拉维斯的一个错误: “coverage report--fail under=100”命令以127退出。描述了退出行为 如果

如果我的覆盖率报告不是100%,我如何使Travis CI构建失败? 我的.travis.yaml看起来像这样:

language: ruby
rvm:
   - 2.2.4
install: bundle install
script:
  - rspec spec/features/*
  - coverage report --fail-under=100
但这是特拉维斯的一个错误: “coverage report--fail under=100”命令以127退出。

描述了退出行为

如果覆盖率低于设定值,则可以使simplecov使rspec测试运行失败

在simplecov启动之前将其放置到spec helper:

SimpleCov.minimum_coverage 100

之后,您可以从.travis.yml中删除覆盖脚本行,查看我认为您可能需要使用
coverage run
运行覆盖,然后才能使用覆盖report@KimmoLehto这是一个rails应用程序,所以我不确定是否可以运行它。我正在使用一个名为simplecov的gem,它基本上是为我运行覆盖率,并在
rspec
命令完成时报告它。覆盖率可能是一个python命令。您可能需要一个脚本来解析coverage/index.html并返回1,除非coverage=100。示例:
grep“covered_percent”coverage/index.html | cut-d'>'-f3 | cut-d'.-f1 | fgrep 100 | | | exit 1
ok,那么脚本会是什么样子呢@Kimmolehto找到了一个更好的解决方案,答案是:@kimmo.lehto:好主意。那会让特拉维斯失败吗?是的。rspec测试运行将以非零退出代码退出。如果退出代码==0,特拉维斯会说成功,如果有其他事情,它会说失败。@Vlad nice。那么你应该把我的答案标记为:)