For a variety of reasons, I find that running code coverage every time my files reload from guard is quite a burden. However, there doesn't seem to be a way to conditionally prevent SimpleCov from starting from the spec helper.
Is there a way to disable SimpleCov when run by guard, but not when I run it normally using rake spec
?
I ultimately found this solution:
Add an environment variable in your Guardfile
:
guard :rspec, env: { 'NO_COVERAGE' => 'true' }
Check for it from the spec helper:
SimpleCov.start :rails unless ENV["NO_COVERAGE"]
In your spec helper:
unless ARGV.any? {|e| e =~ /guard-rspec/ }
SimpleCov.start
end
The idea here is that guard-rspec invokes rspec with a special guard-rspec formatter. Looking for that on the command line given gives you the hint that it was invoked from Guard, so you can just skip SimpleCov if that's there.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With