Rspec provides the handy ability to
place focus: true by a test to make it run in isolation. And running
$bundle exec rspec spec works to make this functionality true
However, usage of parallel specs alone
$rake parallel:spec
or with Zeus : $zeus rake parallel:spec
does not work at all and results in the following
ignoring {:focus => true}
Why? I do not want it to be ignored!
Is there no way to run a single test or even a single file while using parallel specs? Trying to get it set up and debug errors that have to do with parallel processing, but I don't want to have to run the entire test suite to test a fix.
Specifying the file location afterwards such as
$zeus rake parallel:spec spec/features/testing_questionnaire_submission_spec.rb
also fails to work.
This is a good question, and I have the same issue with parallel_tests in my configuration. As parallel_tests breaks the files into separate threads, it will not be of any benefit to run a single file multi-thread anyway.
You can see this when you run:
It will say
1 processes for 1 specs, ~ 1 specs per process.Thus, if you want to run a single spec in
some_test.rb, use:focusfor thatitorspecifyblock, and then run,it doesn't matter. If you want to run a single spec file, it's the same command just no
:focus.The issue that needs to be fixed is when
parallel_rspecis run and there is a:focussomewhere in the tests, it should just run that one spec. Instead, it seems to run every spec in every thread except for the thread that includes the:focus, where it only runs that one test in that thread.And you can see here, I don't think that this issue is going to get fixed: https://github.com/grosser/parallel_tests/issues/114