enkessler / cuke_linter

A linting tool for Cucumber
MIT License
32 stars 8 forks source link

Parallel Tests execution failed after upgrating to CukeLinter 1.1.0 #16

Closed thiagotrentin closed 4 years ago

thiagotrentin commented 4 years ago

After upgrading cuke_linter to the latest version, i've got an error while running parallel cucumber tests, seems to have some conflict between then, for now I'll just fix to use version 1.0.1.

this is my gemfile:

gem 'cucumber', '~> 3'
gem 'cuke_linter'
gem 'parallel_tests', '~> 2'

Error message:

bundler: failed to load command: parallel_cucumber (/usr/local/bundle/bin/parallel_cucumber)
ArgumentError: wrong number of arguments (given 0, expected 1)
  /usr/local/bundle/gems/cucumber-gherkin-13.0.0/lib/gherkin/ast_builder.rb:6:in `initialize'
  /usr/local/bundle/gems/cucumber-gherkin-13.0.0/lib/gherkin/parser.rb:59:in `new'
  /usr/local/bundle/gems/cucumber-gherkin-13.0.0/lib/gherkin/parser.rb:59:in `initialize'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cucumber/scenarios.rb:49:in `new'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cucumber/scenarios.rb:49:in `block in split_into_scenarios'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cucumber/scenarios.rb:38:in `map'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cucumber/scenarios.rb:38:in `split_into_scenarios'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cucumber/scenarios.rb:24:in `all'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/grouper.rb:65:in `group_by_scenarios'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/grouper.rb:10:in `by_scenarios'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/gherkin/runner.rb:85:in `tests_in_groups'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cli.rb:59:in `block in run_tests_in_parallel'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cli.rb:307:in `block in report_time_taken'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests.rb:97:in `delta'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cli.rb:307:in `report_time_taken'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cli.rb:82:in `run_tests_in_parallel'
  /usr/local/bundle/gems/parallel_tests-2.32.0/lib/parallel_tests/cli.rb:24:in `run'
  /usr/local/bundle/gems/parallel_tests-2.32.0/bin/parallel_cucumber:9:in `<top (required)>'
  /usr/local/bundle/bin/parallel_cucumber:23:in `load'
  /usr/local/bundle/bin/parallel_cucumber:23:in `<top (required)>'

It doesn't looks like a problem, maybe just some related gem conflict. Thanks for your time!

enkessler commented 4 years ago

This appears to relate to https://github.com/cucumber/cucumber/issues/1063

I'm guessing that you are transitively using cuke_modeler 3.x, which uses cucumber-gherkin, which cucumber 3.x (the one that you are explicitly depending on) doesn't know to not use. Limiting the version of either cuke_linter or cuke_modeler, as you have already done, avoids the issue.