From 0e094a6e2dc8ea1a9d60db4225644495fa4a2771 Mon Sep 17 00:00:00 2001 From: Luke Hill <20105237+luke-hill@users.noreply.github.com> Date: Thu, 14 Dec 2023 09:06:51 +0000 Subject: [PATCH] Remove autotest refs (#1744) * Remove all autotest files and directories * Tidy up env key reference * Add changelog * Fix up new rubocop offense --- CHANGELOG.md | 1 + lib/autotest/cucumber.rb | 8 -- lib/autotest/cucumber_mixin.rb | 133 -------------------------- lib/autotest/cucumber_rails.rb | 8 -- lib/autotest/cucumber_rails_rspec.rb | 8 -- lib/autotest/cucumber_rails_rspec2.rb | 8 -- lib/autotest/cucumber_rspec.rb | 8 -- lib/autotest/cucumber_rspec2.rb | 8 -- lib/autotest/discover.rb | 14 --- lib/cucumber/formatter/ansicolor.rb | 2 +- 10 files changed, 2 insertions(+), 196 deletions(-) delete mode 100644 lib/autotest/cucumber.rb delete mode 100644 lib/autotest/cucumber_mixin.rb delete mode 100644 lib/autotest/cucumber_rails.rb delete mode 100644 lib/autotest/cucumber_rails_rspec.rb delete mode 100644 lib/autotest/cucumber_rails_rspec2.rb delete mode 100644 lib/autotest/cucumber_rspec.rb delete mode 100644 lib/autotest/cucumber_rspec2.rb delete mode 100644 lib/autotest/discover.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index 525a60a605..b306c00834 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo ### Removed - The sample sinatra tests are no longer used in internal testing (This removes a bunch of superfluous dev gems) ([#1743](https://github.com/cucumber/cucumber-ruby/pull/1743) [luke-hill](https://github.com/luke-hill)) +- Removed all references to autotest as this is an ancient plugin that is not correctly integrated ## [9.1.0] - 2023-11-14 ### Changed diff --git a/lib/autotest/cucumber.rb b/lib/autotest/cucumber.rb deleted file mode 100644 index 18e63a6693..0000000000 --- a/lib/autotest/cucumber.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -require 'autotest' -require 'autotest/cucumber_mixin' - -class Autotest::Cucumber < Autotest - include CucumberMixin -end diff --git a/lib/autotest/cucumber_mixin.rb b/lib/autotest/cucumber_mixin.rb deleted file mode 100644 index 9ab45e05d6..0000000000 --- a/lib/autotest/cucumber_mixin.rb +++ /dev/null @@ -1,133 +0,0 @@ -# frozen_string_literal: true - -require 'autotest' -require 'tempfile' -require 'cucumber' -require 'cucumber/cli/profile_loader' - -module Autotest::CucumberMixin - def self.included(receiver) - receiver::ALL_HOOKS << %i[run_features ran_features] - end - - attr_accessor :features_to_run - - def initialize - super - reset_features - end - - def run - hook :initialize - reset - reset_features - add_sigint_handler - - loop do # ^c handler - wait_for_green - if tainted - rerun_all_tests - rerun_all_features if all_good - else - hook :all_good - end - wait_for_changes - # Once tests and features are green, reset features every - # time a file is changed to see if anything breaks. - reset_features - rescue Interrupt - break if wants_to_quit - - reset - reset_features - end - hook :quit - end - - def all_features_good - features_to_run == '' - end - - def wait_for_green - loop do - super - run_features - wait_for_changes unless all_features_good - break if all_features_good - end - end - - def rerun_all_features - reset_features - run_features - end - - def reset_features - self.features_to_run = :all - end - - def run_features - hook :run_features - Tempfile.open('autotest-cucumber') do |dirty_features_file| - cmd = make_cucumber_cmd(features_to_run, dirty_features_file.path) - break if cmd.empty? - - old_sync = $stdout.sync - $stdout.sync = true - self.results = [] - line = [] - begin - open("| #{cmd}", 'r') do |f| # rubocop:disable Security/Open - until f.eof? - c = f.getc || break - print(c) - line << c - next unless c == "\n" - - results << line.join - line.clear - end - end - ensure - $stdout.sync = old_sync - end - self.features_to_run = dirty_features_file.read.strip - self.tainted = true unless features_to_run == '' - end - hook :ran_features - end - - def make_cucumber_cmd(features_to_run, _dirty_features_filename) - return '' if features_to_run.empty? - - profile_loader = Cucumber::Cli::ProfileLoader.new - - profile = profile(profile_loader) - - args = created_args(features_to_run, profile) - - "#{Cucumber::RUBY_BINARY} #{Cucumber::BINARY} #{args}" - end - - def profile(profile_loader) - profile ||= 'autotest-all' if profile_loader.profile?('autotest-all') && features_to_run == :all - profile ||= 'autotest' if profile_loader.profile?('autotest') - profile || nil - end - - def created_args(features_to_run, profile) - args = if profile - ['--profile', profile] - else - %w[--format] << (features_to_run == :all ? 'progress' : 'pretty') - end - # No --color option as some IDEs (Netbeans) don't output them very well (1 failed step) - args += %w[--format rerun --out] << dirty_features_filename - args << (features_to_run == :all ? '' : features_to_run) - - # All steps becom undefined during rerun unless the following is run. - args << 'features/step_definitions' << 'features/support' unless features_to_run == :all - - args.join(' ') - end -end diff --git a/lib/autotest/cucumber_rails.rb b/lib/autotest/cucumber_rails.rb deleted file mode 100644 index 9bb990b8be..0000000000 --- a/lib/autotest/cucumber_rails.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -require 'autotest/rails' -require 'autotest/cucumber_mixin' - -class Autotest::CucumberRails < Autotest::Rails - include CucumberMixin -end diff --git a/lib/autotest/cucumber_rails_rspec.rb b/lib/autotest/cucumber_rails_rspec.rb deleted file mode 100644 index a6cc252a94..0000000000 --- a/lib/autotest/cucumber_rails_rspec.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -require 'autotest/cucumber_mixin' -require 'autotest/rails_rspec' - -class Autotest::CucumberRailsRspec < Autotest::RailsRspec - include CucumberMixin -end diff --git a/lib/autotest/cucumber_rails_rspec2.rb b/lib/autotest/cucumber_rails_rspec2.rb deleted file mode 100644 index 5e030f9506..0000000000 --- a/lib/autotest/cucumber_rails_rspec2.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -require 'autotest/cucumber_mixin' -require 'autotest/rails_rspec2' - -class Autotest::CucumberRailsRspec2 < Autotest::RailsRspec2 - include CucumberMixin -end diff --git a/lib/autotest/cucumber_rspec.rb b/lib/autotest/cucumber_rspec.rb deleted file mode 100644 index 5f9a84dbdf..0000000000 --- a/lib/autotest/cucumber_rspec.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -require 'autotest/cucumber_mixin' -require 'autotest/rspec' - -class Autotest::CucumberRspec < Autotest::Rspec - include CucumberMixin -end diff --git a/lib/autotest/cucumber_rspec2.rb b/lib/autotest/cucumber_rspec2.rb deleted file mode 100644 index 0f9259f005..0000000000 --- a/lib/autotest/cucumber_rspec2.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -require 'autotest/cucumber_mixin' -require 'autotest/rspec2' - -class Autotest::CucumberRspec2 < Autotest::Rspec2 - include CucumberMixin -end diff --git a/lib/autotest/discover.rb b/lib/autotest/discover.rb deleted file mode 100644 index da088e2bb7..0000000000 --- a/lib/autotest/discover.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -Autotest.add_discovery do - if File.directory?('features') - case ENV['AUTOFEATURE'] - when /true/i - 'cucumber' - when /false/i - # noop - else - puts '(Not running features. To run features in autotest, set AUTOFEATURE=true.)' - end - end -end diff --git a/lib/cucumber/formatter/ansicolor.rb b/lib/cucumber/formatter/ansicolor.rb index 50ced2aab0..d345038875 100644 --- a/lib/cucumber/formatter/ansicolor.rb +++ b/lib/cucumber/formatter/ansicolor.rb @@ -3,7 +3,7 @@ require 'cucumber/platform' require 'cucumber/term/ansicolor' -Cucumber::Term::ANSIColor.coloring = false if !$stdout.tty? && !ENV.key?('AUTOTEST') +Cucumber::Term::ANSIColor.coloring = false unless $stdout.tty? module Cucumber module Formatter