2017-03-08 3 views
1

Rspec bietet die praktische Möglichkeit, Platz focus: true durch einen Test, um es isoliert zu machen. Und läuft $bundle exec rspec spec Werke diese Funktionalität machen wahrEs kann kein einzelner Test ausgeführt werden, wenn Zeus Parallel Spec zusammen mit Rspec verwendet wird. Fokus: True funktioniert nicht

jedoch Verwendung von parallelen Spezifikationen allein $rake parallel:spec

oder mit Zeus: $zeus rake parallel:spec

funktioniert nicht und führt zu der folgenden

ignoring {:focus => true}

Warum? Ich will nicht, dass es ignoriert wird!

Gibt es keine Möglichkeit, einen einzelnen Test oder sogar eine einzelne Datei zu verwenden, während parallele Spezifikationen verwendet werden? Ich versuche, es einzurichten und Fehler zu debuggen, die mit der parallelen Verarbeitung zu tun haben, aber ich möchte nicht die gesamte Testsuite ausführen, um einen Fix zu testen.

Angeben der Dateipfad danach wie $zeus rake parallel:spec spec/features/testing_questionnaire_submission_spec.rb

nicht auch zu arbeiten.

Antwort

1

Das ist eine gute Frage, und ich habe das gleiche Problem mit parallel_tests in meiner Konfiguration. Da parallel_tests die Dateien in separate Threads aufteilt, wird es sowieso keinen Vorteil haben, einen einzelnen Datei-Multithread auszuführen.

Sie können dies sehen, wenn Sie laufen:

parallel_rspec spec/models/some_test.rb 

Es 1 processes for 1 specs, ~ 1 specs per process sagen.

Wenn Sie also eine einzelne spec in some_test.rb ausführen möchten, verwenden Sie :focus für diesen it oder specify Block, und dann laufen,

rspec spec/models/some_test.rb 
or 
parallel_rspec spec/models/some_test.rb 

es keine Rolle spielt. Wenn Sie eine einzelne Spezifikationsdatei ausführen möchten, ist es derselbe Befehl, nur :focus.

Das Problem, das behoben werden muss, ist, wenn parallel_rspec ausgeführt wird und es eine :focus irgendwo in den Tests gibt, sollte es nur diese eine Spezifikation ausführen. Stattdessen scheint es jede Spezifikation in jedem Thread außer dem Thread auszuführen, der die :focus enthält, wo es nur diesen einen Test in diesem Thread ausführt.

Und Sie können hier sehen, glaube ich nicht, dass dieses Problem behoben erhalten wird: https://github.com/grosser/parallel_tests/issues/114

+0

Boom Sie die Antwort zur Verfügung gestellt. Ich habe immer Tests mit parallel: spec und nicht parallel_rspec ausgeführt, könnte deshalb die Zeilensyntax nicht funktionieren. Wissen Sie, wann Sie welche verwenden sollen? Der Grund, warum ich einen einzigen Test mit parallel_rspec ausführen wollte, ist, dass es einen Fehler gibt, der nur bei parallel_tests auftritt (es lädt nicht twitter/bootstrap ...). Da ich nur einen Test durchführen kann, muss ich nicht zwischen neuen Fixversuchen 6 Minuten warten. –

Verwandte Themen