2016-05-09 11 views
2

Ich verwende die aus der Box, Vanille-Test-Suite für Rails 5 Beta. Ich frage mich, ob jemand herausgefunden hat, wie man ein globales Setup ausführt und abreißt.Rails 5 Test globale Einrichtung und Teardown

Der Grund dafür ist, dass ich einen Elasticsearch-Cluster im Speicher spinne, bevor ein Test beginnt, und den Cluster stoppen, sobald die Tests abgeschlossen sind.

Rspec ist keine Option.

+0

Haben Sie herausgefunden, wie das geht? Die unten von @BoraMa gegebene Antwort funktioniert sicher nicht. –

Antwort

2

Unter Minitest (die die Standardtestumgebung in Rails 4+ ist), das „globale Setup“ Verhalten zu bekommen, einfach in Ihrem test_helper.rb laufen etwas (außerhalb der Tests selbst oder irgendwelche setup Methoden), dh in der Datei, von der Sie Ihre Testumgebung laden. Der Testhelfer wird normalerweise in den Tests benötigt, daher wird der Code vor jedem Test einmal ausgeführt.

Für ein "globales Teardown" stellt Minitest Minitest.after_run method zur Verfügung. Alles, was sich in seinem Block befindet, wird einmal ausgeführt, nachdem alle Tests beendet sind (es benutzt den Programm-Exit-Hook). Platziere es z.B. in der test_helper wieder. Damit dies funktioniert, müssen Sie require 'minitest/autorun' am Anfang der Testhilfsdatei stehen.

+0

Sorry, aber das funktioniert nicht mit Schienen 5. Siehe das Repo hier - https://github.com/paneer-tikka/foo –

+0

Was genau funktioniert nicht für Sie? Setup, Teardown, beides? Außerdem gibt es keinen Code in dem Repo, den Sie verlinkt haben. – BoraMa

+0

Entschuldigung, habe den Repo jetzt aktualisiert. Der Teardown mit Minitest.after_run wird überhaupt nicht aufgerufen. Siehe test_helper.rb Zeile 14. Ich erwarte, dass am Ende der Ausführung von "rails test" aufgerufen wird. Was vermisse ich? –

Verwandte Themen