diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 09939eef..45ef5d84 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,6 @@ name: test on: - push: pull_request: jobs: @@ -10,7 +9,7 @@ jobs: strategy: fail-fast: false # run all tests so we see which gem/ruby combinations break matrix: - ruby: ['3.0', '3.1', '3.2', head, jruby-head] + ruby: ['3.0', '3.1', '3.2', '3.3', head, jruby-head] os: [ubuntu-latest, windows-latest] task: [spec] include: diff --git a/Gemfile b/Gemfile index 88af8f0e..a65174b4 100644 --- a/Gemfile +++ b/Gemfile @@ -8,6 +8,7 @@ gem 'minitest', '~> 5.5.0' gem 'rspec', '~> 3.3' gem 'cucumber', "~> 4.0" gem 'cuke_modeler', '~> 3.6' -gem 'spinach', '~> 0.12' +gem 'spinach' +gem 'racc' # need for spinach on 3.3+ https://github.com/codegram/spinach/issues/256 gem 'rake' gem 'rubocop', '~> 1.51.0' # lock minor so we do not get accidental violations diff --git a/Gemfile.lock b/Gemfile.lock index 4629be16..05af70db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,7 +16,7 @@ GEM ast (2.4.2) builder (3.2.4) bump (0.10.0) - colorize (0.8.1) + colorize (1.1.0) concurrent-ruby (1.1.10) cucumber (4.1.0) builder (~> 3.2, >= 3.2.3) @@ -72,6 +72,8 @@ GEM middleware thor thread_safe + racc (1.8.0) + racc (1.8.0-java) rainbow (3.1.1) rake (13.0.6) regexp_parser (2.8.0) @@ -129,10 +131,11 @@ DEPENDENCIES cuke_modeler (~> 3.6) minitest (~> 5.5.0) parallel_tests! + racc rake rspec (~> 3.3) rubocop (~> 1.51.0) - spinach (~> 0.12) + spinach test-unit BUNDLED WITH diff --git a/spec/integration_spec.rb b/spec/integration_spec.rb index 294d21eb..468d0aaf 100644 --- a/spec/integration_spec.rb +++ b/spec/integration_spec.rb @@ -571,12 +571,13 @@ def test_unicode write "features/fail2.feature", "Feature: xxx\n Scenario: xxx\n Given I fail" results = run_tests ["features"], processes: 3, type: "cucumber", fail: true - failing_scenarios = if Gem.win_platform? + failing_scenarios = if Gem.win_platform? && RUBY_VERSION < "3.3.0" ["cucumber features/fail1.feature:2 # Scenario: xxx", "cucumber features/fail2.feature:2 # Scenario: xxx"] else ["cucumber features/fail2.feature:2 # Scenario: xxx", "cucumber features/fail1.feature:2 # Scenario: xxx"] end + results.gsub!(/.*WARNING.*\n/, "") expect(results).to include <<-EOF.gsub(' ', '') Failing Scenarios: #{failing_scenarios[0]} diff --git a/spec/parallel_tests/cucumber/runner_spec.rb b/spec/parallel_tests/cucumber/runner_spec.rb index eb52cf85..31cfe8fc 100644 --- a/spec/parallel_tests/cucumber/runner_spec.rb +++ b/spec/parallel_tests/cucumber/runner_spec.rb @@ -21,7 +21,18 @@ def call(*args) "Failing Scenarios:", "cucumber features/failure:3", "cucumber features/failure:4", "Failing Scenarios:", "cucumber features/failure:5", "cucumber features/failure:6" ] - expect(call(results)).to eq("Failing Scenarios:\ncucumber features/failure:1\ncucumber features/failure:2\ncucumber features/failure:3\ncucumber features/failure:4\ncucumber features/failure:5\ncucumber features/failure:6\n\n") + output = call(results) + output.gsub!(/.*WARNING.*\n/, "") + expect(output).to eq(<<~TXT) + Failing Scenarios: + cucumber features/failure:1 + cucumber features/failure:2 + cucumber features/failure:3 + cucumber features/failure:4 + cucumber features/failure:5 + cucumber features/failure:6 + + TXT end it "collates flaky scenarios separately" do diff --git a/spec/parallel_tests/test/runner_spec.rb b/spec/parallel_tests/test/runner_spec.rb index f3f2c37b..833ea4cf 100644 --- a/spec/parallel_tests/test/runner_spec.rb +++ b/spec/parallel_tests/test/runner_spec.rb @@ -43,7 +43,7 @@ def call(*args) end it "uses given when passed found" do - result = Gem.win_platform? ? [["a", "b"], ["c"]] : [["a", "c"], ["b"]] + result = (Gem.win_platform? && RUBY_VERSION < "3.3.0" ? [["a", "b"], ["c"]] : [["a", "c"], ["b"]]) expect(call(["a", "b", "c"], 2, group_by: :found)).to eq(result) end