2013-07-18 13 views
8

Aus verschiedenen Gründen finde ich, dass die Codeabdeckung jedes Mal, wenn meine Dateien vom Guard geladen werden, eine ziemlich große Last ist. Es scheint jedoch keine Möglichkeit zu geben, SimpleCov vom Starten des Spezifikationshelfers aus bedingt zu unterbinden.Deaktivierung der Codeabdeckung für Schutzklassenläufe

Gibt es eine Möglichkeit, SimpleCov zu deaktivieren, wenn es von Guard ausgeführt wird, aber nicht, wenn ich es normal unter Verwendung rake spec ausführe?

Antwort

12

Ich fand schließlich diese Lösung:

guard :rspec, env: { 'NO_COVERAGE' => 'true' }

  • prüfen sie aus dem spec Helfer:

    1. eine Umgebungsvariable in Ihrem Guardfile hinzufügen

      SimpleCov.start :rails unless ENV["NO_COVERAGE"]

  • +3

    Die Option 'env' ist jetzt veraltet, und die Option 'env var' zu 'cmd' hinzuzufügen, ist die jetzt empfohlene Lösung, z. B .:' guard: rspec, cmd: "NO_COVERAGE = true bin/rspec" ' –

    4

    In der Spec-Helfer:

    unless ARGV.any? {|e| e =~ /guard-rspec/ } 
        SimpleCov.start 
    end 
    

    Die Idee dabei ist, dass Wacht rspec Invokes mit einem speziellen Schutz-rspec Formatierer RSpec. Wenn Sie in der angegebenen Befehlszeile nach dem Befehl suchen, erhalten Sie den Hinweis, dass er von Guard aufgerufen wurde. Sie können SimpleCov also einfach überspringen, wenn dies der Fall ist.

    Verwandte Themen