2017-03-08 41 views
1

Rspec通過一項測試提供了方便的能力,可以通過測試使位置focus: true獨立運行。運行 $bundle exec rspec spec作品,使這個功能真的當使用Zeus Parallel Spec和Rspec時,無法運行單個測試。重點:真正不起作用

然而,僅靠並行規格 $rake parallel:spec

或與宙斯的用法:$zeus rake parallel:spec

完全不和導致以下

工作ignoring {:focus => true}

爲什麼?我不希望它被忽略!

在使用並行規格時,是否無法運行單個測試甚至單個文件?試圖設置和調試與並行處理有關的錯誤,但我不想運行整個測試套件來測試修補程序。

指定文件的位置後,如 $zeus rake parallel:spec spec/features/testing_questionnaire_submission_spec.rb

也無法工作。

回答

1

這是一個很好的問題,我在配置中與parallel_tests有同樣的問題。由於parallel_tests將這些文件分解成單獨的線程,因此無論如何運行單個文件多線程都沒有任何好處。

你可以看到這個當您運行:

parallel_rspec spec/models/some_test.rb 

它會說1 processes for 1 specs, ~ 1 specs per process

因此,如果你想在some_test.rb運行單個規範,使用:focusitspecify塊,然後運行,

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

沒關係。如果你想運行一個規格文件,它是相同的命令,只是沒有:focus

需要解決的問題是當運行parallel_rspec並且在測試中某個地方存在:focus時,應該只運行該規範。相反,它似乎在除了包含:focus的線程之外的每個線程中運行每個線程,其中它只在該線程中運行該測試。

而且你可以在這裏看到,我不認爲這個問題是會得到固定的:https://github.com/grosser/parallel_tests/issues/114

+0

景氣您提供了答案。我一直使用parallel:spec而不是parallel_rspec來運行測試,可能是爲什麼行語法不起作用。知道什麼時候使用哪個?我希望能夠用parallel_rspec運行單個測試的原因是,我得到的錯誤只發生在parallel_tests(它不會加載twitter/bootstrap ...)。能夠只運行一個測試意味着我不需要等待6分鐘的新修復嘗試。 –

相關問題