由于各种原因,我发现每次从guard 重新加载文件时运行代码覆盖是一个相当大的负担。但是,似乎没有办法有条件地阻止 SimpleCov 从规范助手开始。
有没有办法在警卫运行时禁用 SimpleCov,但在我正常运行时没有rake spec
?
由于各种原因,我发现每次从guard 重新加载文件时运行代码覆盖是一个相当大的负担。但是,似乎没有办法有条件地阻止 SimpleCov 从规范助手开始。
有没有办法在警卫运行时禁用 SimpleCov,但在我正常运行时没有rake spec
?
我最终找到了这个解决方案:
在你的添加一个环境变量Guardfile
:
guard :rspec, env: { 'NO_COVERAGE' => 'true' }
从规范助手检查它:
SimpleCov.start :rails unless ENV["NO_COVERAGE"]
在您的规范助手中:
unless ARGV.any? {|e| e =~ /guard-rspec/ }
SimpleCov.start
end
这里的想法是guard-rspec 使用特殊的guard-rspec 格式化程序调用rspec。在给定的命令行上查找它会提示您它是从 Guard 调用的,因此如果存在的话,您可以跳过 SimpleCov。
在 VsCode 中,我使用 Ruby Spec Command:NO_COVERAGE=true bin/rspec
在扩展Rails Run Spec
也适用于命令行:NO_COVERAGE=true bin/rspec spec/*_spec.rb
或NO_COVERAGE=true bundle exec rspec spec/*_spec.rb