2017-12-19 4 views
0

Standardmäßig führt rails test keine Systemtests aus, und man muss rails test:system aufrufen, um die Systemtests auszuführen. Da man mit Wache, was ist die richtige Neben dem Guardfile so dass Wache wird:Wie konfiguriert man Guard, um Rails 5-Systemtests auszuführen?

  1. Run alle Tests, einschließlich der Systemtests.
  2. Führen Sie den entsprechenden Systemtest aus, wenn sich dieser ändert.

Ich habe versucht, so etwas wie:

guard :minitest, spring: true do 
    # ... 
    watch(%r{^test/system\/?(.*)_test\.rb$}) { 'test' } 
    # ... 
end 

Aber es scheint, ich bin bei der Konfiguration Schutz nicht erzogen.

Antwort

1

Rails haben ausdrücklich ausgeschlossen, dass Systemtests mit rails test ausgeführt werden, weil sie viel langsamer sind. Der empfohlene Arbeitsablauf besteht darin, während der Arbeit schnell die Komponententests auszuführen (d. H. Mit Wächter) und Systemtests auszuführen, sobald Sie bereit sind, die Funktionalität zu bestätigen.

Wenn Sie dies wollte sowieso tun, würden Sie eine neue Garde-Plugin (guard :yourthing { ... }) benötigen entweder hinzufügen, oder Sie können einfach Ihre rails test Befehl konfigurieren auch rails test:system mit Rake enthalten:

# Rakefile 
Rake::Task["test"].enhance ["test:system"] 

Dieser Wille make rake, rake test und rake test:run führen alle Ihre Systemtests auch, auch wenn sie von Guard laufen.

+0

Vielen Dank, @coreyward. Ich benutze Rails 5.1.4 und der Zusatz zum Rakefile hat keinen Einfluss auf "Rake", "Rake Test" oder "Rails Test". Ich werde die Antwort für Genauigkeit bearbeiten. – ybakos

Verwandte Themen