From 65ebb49121b1396b6c51818a3142474b40320f9a Mon Sep 17 00:00:00 2001 From: Matt Brictson Date: Tue, 25 Aug 2026 20:57:10 -0700 Subject: [PATCH 1/4] Remove rubocop-minitest and mighty_test --- .rubocop.yml | 9 ++------- Gemfile | 2 -- bin/mt | 27 --------------------------- 3 files changed, 2 insertions(+), 36 deletions(-) delete mode 100755 bin/mt diff --git a/.rubocop.yml b/.rubocop.yml index 1888665..f0be457 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,4 @@ plugins: - - rubocop-minitest - rubocop-factory_bot - rubocop-packaging - rubocop-performance @@ -10,6 +9,8 @@ AllCops: DisplayStyleGuide: true NewCops: enable TargetRubyVersion: 2.7 + SuggestExtensions: + rubocop-minitest: false Exclude: - "bin/*" - "test/fixtures/**/*" @@ -74,12 +75,6 @@ Metrics/MethodLength: Metrics/ParameterLists: Max: 6 -Minitest/EmptyLineBeforeAssertionMethods: - Enabled: false - -Minitest/MultipleAssertions: - Max: 6 - Naming/MemoizedInstanceVariableName: Enabled: false diff --git a/Gemfile b/Gemfile index 4ea2fb9..bc90498 100644 --- a/Gemfile +++ b/Gemfile @@ -17,10 +17,8 @@ gem "vcr", "~> 6.2" gem "webmock", "~> 3.23" if RUBY_VERSION >= "3.3" - gem "mighty_test", "~> 0.3" gem "rubocop", "1.88.2" gem "rubocop-factory_bot", "2.28.0" - gem "rubocop-minitest", "0.40.0" gem "rubocop-packaging", "0.6.0" gem "rubocop-performance", "1.26.1" gem "rubocop-rake", "0.7.1" diff --git a/bin/mt b/bin/mt deleted file mode 100755 index 3911e1c..0000000 --- a/bin/mt +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -# -# This file was generated by Bundler. -# -# The application 'mt' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) - -bundle_binstub = File.expand_path("bundle", __dir__) - -if File.file?(bundle_binstub) - if File.read(bundle_binstub, 300).include?("This file was generated by Bundler") - load(bundle_binstub) - else - abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. -Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") - end -end - -require "rubygems" -require "bundler/setup" - -load Gem.bin_path("mighty_test", "mt") From a4f30dde8596e32c2e7ed10eb00b133a24014625 Mon Sep 17 00:00:00 2001 From: Matt Brictson Date: Tue, 25 Aug 2026 20:58:38 -0700 Subject: [PATCH 2/4] Switch from minitest to megatest --- Gemfile | 2 +- Rakefile | 9 ++++----- bin/megatest | 16 ++++++++++++++++ .../bundler_commands_test.rb | 3 +-- .../changelog_locator_test.rb | 4 +--- .../cli/multi_select_test.rb | 3 +-- .../cli/options_test.rb | 4 +--- .../bundle_update_interactive/cli/row_test.rb | 4 +--- test/bundle_update_interactive/cli_test.rb | 4 +--- .../git_committer_test.rb | 4 +--- test/bundle_update_interactive/http_test.rb | 3 +-- .../latest/gem_requirement_test.rb | 4 +--- .../latest/gemfile_editor_test.rb | 3 +-- .../latest/updater_test.rb | 3 +-- .../lockfile_test.rb | 4 +--- .../outdated_gem_test.rb | 4 +--- .../semver_change_test.rb | 4 +--- .../bundle_update_interactive/updater_test.rb | 3 +-- test/bundle_update_interactive_test.rb | 4 +--- test/integration/cli_integration_test.rb | 3 +-- test/support/bundler_audit_test_helpers.rb | 2 +- test/support/capture_io_helpers.rb | 4 ++-- test/support/factory_bot.rb | 2 +- test/support/mocha.rb | 19 ++++++++++++++++++- test/support/snapshots.rb | 13 +++++++++++++ test/support/webmock.rb | 15 ++++++++++++++- test/test_config.rb | 5 +++++ test/test_helper.rb | 7 +++++-- 28 files changed, 97 insertions(+), 58 deletions(-) create mode 100755 bin/megatest create mode 100644 test/support/snapshots.rb create mode 100644 test/test_config.rb diff --git a/Gemfile b/Gemfile index bc90498..ff872d7 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ gem "activesupport", "~> 7.1.3" # Needed for factory_bot 6.3 gem "cgi" # Needed for vcr on Ruby 3.5+ gem "factory_bot", "~> 6.3.0" gem "irb" -gem "minitest", "~> 5.11" +gem "megatest", "~> 0.11.0" gem "minitest-snapshots", "~> 1.1" gem "mocha", "~> 3.0" gem "observer" diff --git a/Rakefile b/Rakefile index 6641ee9..279658a 100644 --- a/Rakefile +++ b/Rakefile @@ -1,12 +1,11 @@ # frozen_string_literal: true require "bundler/gem_tasks" -require "rake/testtask" +require "megatest/test_task" -Rake::TestTask.new(:test) do |t| - t.libs << "test" - t.libs << "lib" - t.test_files = FileList["test/**/*_test.rb"] +Megatest::TestTask.create(:test) do |t| + t.command = "bin/megatest" + t.tests = FileList["test/**/*_test.rb"] end if Gem.loaded_specs.key?("rubocop") diff --git a/bin/megatest b/bin/megatest new file mode 100755 index 0000000..c0f62b3 --- /dev/null +++ b/bin/megatest @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'megatest' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("megatest", "megatest") diff --git a/test/bundle_update_interactive/bundler_commands_test.rb b/test/bundle_update_interactive/bundler_commands_test.rb index 9098650..4f18a67 100644 --- a/test/bundle_update_interactive/bundler_commands_test.rb +++ b/test/bundle_update_interactive/bundler_commands_test.rb @@ -1,10 +1,9 @@ # frozen_string_literal: true -require "test_helper" require "bundler" module BundleUpdateInteractive - class BundlerCommandsTest < Minitest::Test + class BundlerCommandsTest < Test def setup Gem.stubs(:bin_path).with("bundler", "bundle", Bundler::VERSION).returns("/exe/bundle") end diff --git a/test/bundle_update_interactive/changelog_locator_test.rb b/test/bundle_update_interactive/changelog_locator_test.rb index 2103acb..134e7fc 100644 --- a/test/bundle_update_interactive/changelog_locator_test.rb +++ b/test/bundle_update_interactive/changelog_locator_test.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive - class ChangelogLocatorTest < Minitest::Test + class ChangelogLocatorTest < Test def test_fetches_changelog_uri_from_rubygems VCR.use_cassette("changelog_requests") do uri = ChangelogLocator.new.find_changelog_uri(name: "nokogiri", version: "1.16.6") diff --git a/test/bundle_update_interactive/cli/multi_select_test.rb b/test/bundle_update_interactive/cli/multi_select_test.rb index e841503..fa9e861 100644 --- a/test/bundle_update_interactive/cli/multi_select_test.rb +++ b/test/bundle_update_interactive/cli/multi_select_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true -require "test_helper" require "launchy" require "tty/prompt/test" module BundleUpdateInteractive class CLI - class MultiSelectTest < Minitest::Test + class MultiSelectTest < Test ARROW_UP = "\e[A" ARROW_DOWN = "\e[B" CTRL_A = "\u0001" diff --git a/test/bundle_update_interactive/cli/options_test.rb b/test/bundle_update_interactive/cli/options_test.rb index c4860ac..9578b73 100644 --- a/test/bundle_update_interactive/cli/options_test.rb +++ b/test/bundle_update_interactive/cli/options_test.rb @@ -1,10 +1,8 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive class CLI - class OptionsTest < Minitest::Test + class OptionsTest < Test def test_prints_help_and_exits_when_given_dash_h stdout, _stderr, status = capture_io_and_exit_status do Options.parse(%w[-h]) diff --git a/test/bundle_update_interactive/cli/row_test.rb b/test/bundle_update_interactive/cli/row_test.rb index ce3e9f9..2422e41 100644 --- a/test/bundle_update_interactive/cli/row_test.rb +++ b/test/bundle_update_interactive/cli/row_test.rb @@ -1,10 +1,8 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive class CLI - class RowTest < Minitest::Test + class RowTest < Test def test_formatted_gem_name_for_vulnerable_gem_is_red_on_white outdated_gem = build(:outdated_gem, name: "rails", vulnerable: true) row = Row.new(outdated_gem) diff --git a/test/bundle_update_interactive/cli_test.rb b/test/bundle_update_interactive/cli_test.rb index a8de774..79777ef 100644 --- a/test/bundle_update_interactive/cli_test.rb +++ b/test/bundle_update_interactive/cli_test.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive - class CLIIest < Minitest::Test + class CLITest < Test def test_shows_help_and_exits stdout, stderr, status = capture_io_and_exit_status do CLI.new.run(argv: %w[--help]) diff --git a/test/bundle_update_interactive/git_committer_test.rb b/test/bundle_update_interactive/git_committer_test.rb index b251a3c..a1f6b93 100644 --- a/test/bundle_update_interactive/git_committer_test.rb +++ b/test/bundle_update_interactive/git_committer_test.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive - class GitCommitterTest < Minitest::Test + class GitCommitterTest < Test def setup @git_committer = GitCommitter.new(nil) end diff --git a/test/bundle_update_interactive/http_test.rb b/test/bundle_update_interactive/http_test.rb index a466631..d2f79fc 100644 --- a/test/bundle_update_interactive/http_test.rb +++ b/test/bundle_update_interactive/http_test.rb @@ -1,11 +1,10 @@ # frozen_string_literal: true -require "test_helper" require "openssl" require "net/http" module BundleUpdateInteractive - class HttpTest < Minitest::Test + class HttpTest < Test def test_gracefully_handles_openssl_error Net::HTTP.stubs(:start).raises(OpenSSL::SSL::SSLError) diff --git a/test/bundle_update_interactive/latest/gem_requirement_test.rb b/test/bundle_update_interactive/latest/gem_requirement_test.rb index 0a0e924..3d0edd2 100644 --- a/test/bundle_update_interactive/latest/gem_requirement_test.rb +++ b/test/bundle_update_interactive/latest/gem_requirement_test.rb @@ -1,10 +1,8 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive module Latest - class GemRequirementTest < Minitest::Test + class GemRequirementTest < Test def test_relax_doesnt_affect_greater_than_equal_requirements assert_equal(">= 1.0.1", parse(">= 1.0.1").relax.to_s) end diff --git a/test/bundle_update_interactive/latest/gemfile_editor_test.rb b/test/bundle_update_interactive/latest/gemfile_editor_test.rb index 863e437..6db90f7 100644 --- a/test/bundle_update_interactive/latest/gemfile_editor_test.rb +++ b/test/bundle_update_interactive/latest/gemfile_editor_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true -require "test_helper" require "fileutils" require "tmpdir" module BundleUpdateInteractive module Latest - class GemfileEditorTest < Minitest::Test + class GemfileEditorTest < Test def setup @original_dir = Dir.pwd @temp_dir = Dir.mktmpdir diff --git a/test/bundle_update_interactive/latest/updater_test.rb b/test/bundle_update_interactive/latest/updater_test.rb index e174bc8..b6f9502 100644 --- a/test/bundle_update_interactive/latest/updater_test.rb +++ b/test/bundle_update_interactive/latest/updater_test.rb @@ -1,11 +1,10 @@ # frozen_string_literal: true -require "test_helper" require "bundler" module BundleUpdateInteractive module Latest - class UpdaterTest < Minitest::Test + class UpdaterTest < Test def test_generate_report_doesnt_run_bundle_outdated_and_always_returns_no_withheld_gems Dir.chdir(File.expand_path("../../fixtures", __dir__)) do updated_lockfile = File.read("Gemfile.lock.updated") diff --git a/test/bundle_update_interactive/lockfile_test.rb b/test/bundle_update_interactive/lockfile_test.rb index 8e97c8d..f956129 100644 --- a/test/bundle_update_interactive/lockfile_test.rb +++ b/test/bundle_update_interactive/lockfile_test.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive - class LockfileTest < Minitest::Test + class LockfileTest < Test def test_parses_a_lockfile_into_entries_by_name lockfile = Lockfile.parse(File.read(File.expand_path("../fixtures/Gemfile.lock", __dir__))) diff --git a/test/bundle_update_interactive/outdated_gem_test.rb b/test/bundle_update_interactive/outdated_gem_test.rb index 12be2bc..cacde28 100644 --- a/test/bundle_update_interactive/outdated_gem_test.rb +++ b/test/bundle_update_interactive/outdated_gem_test.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive - class OutdatedGemTest < Minitest::Test + class OutdatedGemTest < Test def test_changelog_uri_delegates_to_changelog_locator_for_rubygems_source changelog_locator = mock ChangelogLocator.expects(:new).returns(changelog_locator) diff --git a/test/bundle_update_interactive/semver_change_test.rb b/test/bundle_update_interactive/semver_change_test.rb index 07ef910..ddef896 100644 --- a/test/bundle_update_interactive/semver_change_test.rb +++ b/test/bundle_update_interactive/semver_change_test.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true -require "test_helper" - module BundleUpdateInteractive - class SemverChangeTest < Minitest::Test + class SemverChangeTest < Test def test_prerelease_is_considered_patch change = SemverChange.new("7.2.0.beta2", "7.2.0.beta3") diff --git a/test/bundle_update_interactive/updater_test.rb b/test/bundle_update_interactive/updater_test.rb index 8ae2ce7..de0dd9f 100644 --- a/test/bundle_update_interactive/updater_test.rb +++ b/test/bundle_update_interactive/updater_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true -require "test_helper" require "bundler" require "bundler/audit" require "bundler/audit/scanner" module BundleUpdateInteractive - class UpdaterTest < Minitest::Test + class UpdaterTest < Test def test_generates_a_report_of_updatable_gems_that_can_be_rendered_as_a_table VCR.use_cassette("changelog_requests") do Dir.chdir(File.expand_path("../fixtures", __dir__)) do diff --git a/test/bundle_update_interactive_test.rb b/test/bundle_update_interactive_test.rb index 7aaa048..56965c4 100644 --- a/test/bundle_update_interactive_test.rb +++ b/test/bundle_update_interactive_test.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true -require "test_helper" - -class BundleUpdateInteractiveTest < Minitest::Test +class BundleUpdateInteractiveTest < BundleUpdateInteractive::Test def test_that_it_has_a_version_number refute_nil ::BundleUpdateInteractive::VERSION end diff --git a/test/integration/cli_integration_test.rb b/test/integration/cli_integration_test.rb index ce30456..665b49c 100644 --- a/test/integration/cli_integration_test.rb +++ b/test/integration/cli_integration_test.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true -require "test_helper" require "json" require "open3" require "tmpdir" module BundleUpdateInteractive - class CLIIntegrationIest < Minitest::Test + class CLIIntegrationIest < Test def test_updates_lock_file_based_on_selected_gem_while_honoring_gemfile_requirement out, _gemfile, lockfile = within_fixture_copy("integration") do run_bundle_update_interactive(argv: [], key_presses: "j \n") diff --git a/test/support/bundler_audit_test_helpers.rb b/test/support/bundler_audit_test_helpers.rb index f91de78..6e5110b 100644 --- a/test/support/bundler_audit_test_helpers.rb +++ b/test/support/bundler_audit_test_helpers.rb @@ -17,4 +17,4 @@ def mock_vulnerable_gems(*gem_names) end end -Minitest::Test.include(BundlerAuditTestHelpers) +BundleUpdateInteractive::Test.include(BundlerAuditTestHelpers) diff --git a/test/support/capture_io_helpers.rb b/test/support/capture_io_helpers.rb index 38cffc3..eb9c25c 100644 --- a/test/support/capture_io_helpers.rb +++ b/test/support/capture_io_helpers.rb @@ -6,7 +6,7 @@ module CaptureIOHelpers private - # Patch Minitest's capture_io to make it compatible with TTY::Prompt + # Patch Megatest's capture_io to make it compatible with TTY::Prompt def capture_io super do $stdout.extend(TTY::Prompt::StringIOExtensions) if $stdout.is_a?(StringIO) @@ -37,4 +37,4 @@ def capture_io_and_exit_status(stdin_data: "") end end -Minitest::Test.prepend(CaptureIOHelpers) +BundleUpdateInteractive::Test.prepend CaptureIOHelpers diff --git a/test/support/factory_bot.rb b/test/support/factory_bot.rb index 6d64e88..263bc6e 100644 --- a/test/support/factory_bot.rb +++ b/test/support/factory_bot.rb @@ -4,7 +4,7 @@ FactoryBot.find_definitions -module Minitest +module BundleUpdateInteractive class Test include FactoryBot::Syntax::Methods end diff --git a/test/support/mocha.rb b/test/support/mocha.rb index 82fa2e5..548ec08 100644 --- a/test/support/mocha.rb +++ b/test/support/mocha.rb @@ -1,7 +1,24 @@ # frozen_string_literal: true -require "mocha/minitest" +require "mocha/api" Mocha.configure do |config| config.stubbing_non_existent_method = :prevent end + +Mocha::ExpectationErrorFactory.exception_class = Megatest::Assertion + +module BundleUpdateInteractive + class Test + include Mocha::API + + setup do + mocha_setup + end + + teardown do + @__m.record_failures { mocha_verify } + mocha_teardown + end + end +end diff --git a/test/support/snapshots.rb b/test/support/snapshots.rb new file mode 100644 index 0000000..20cf17b --- /dev/null +++ b/test/support/snapshots.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require "minitest/snapshots_plugin" +require "minitest/snapshots/assertion_extensions" +require "minitest/snapshots/test_extensions" + +module BundleUpdateInteractive + class Test + include Minitest::Snapshots::TestExtensions + + define_method(:assert_matches_snapshot, Minitest::Assertions.instance_method(:assert_matches_snapshot)) + end +end diff --git a/test/support/webmock.rb b/test/support/webmock.rb index fee65bf..175b1b0 100644 --- a/test/support/webmock.rb +++ b/test/support/webmock.rb @@ -1,3 +1,16 @@ # frozen_string_literal: true -require "webmock/minitest" +require "webmock" + +WebMock.enable! +WebMock::AssertionFailure.error_class = Megatest::Assertion + +module BundleUpdateInteractive + class Test + include WebMock::API + + teardown do + WebMock.reset! + end + end +end diff --git a/test/test_config.rb b/test/test_config.rb new file mode 100644 index 0000000..ca756b6 --- /dev/null +++ b/test/test_config.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +Megatest.config do |config| + config.minitest_compatibility = true +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 7e2d846..0e30a1b 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,9 +1,12 @@ # frozen_string_literal: true -$LOAD_PATH.unshift File.expand_path("../lib", __dir__) require "bundle_update_interactive" -require "minitest/autorun" BundleUpdateInteractive.pastel = Pastel.new(enabled: true) +module BundleUpdateInteractive + class Test < Megatest::Test + end +end + Dir[File.expand_path("support/**/*.rb", __dir__)].sort.each { |rb| require(rb) } From 17304273a0139d9685385a1f6fbbf607fbab1945 Mon Sep 17 00:00:00 2001 From: Matt Brictson Date: Tue, 25 Aug 2026 20:32:23 -0700 Subject: [PATCH 3/4] Avoid file edits that pollute parallel tests --- test/bundle_update_interactive/latest/updater_test.rb | 4 ++-- test/integration/cli_integration_test.rb | 8 -------- test/test_helper.rb | 9 +++++++++ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/test/bundle_update_interactive/latest/updater_test.rb b/test/bundle_update_interactive/latest/updater_test.rb index b6f9502..499e7a2 100644 --- a/test/bundle_update_interactive/latest/updater_test.rb +++ b/test/bundle_update_interactive/latest/updater_test.rb @@ -6,7 +6,7 @@ module BundleUpdateInteractive module Latest class UpdaterTest < Test def test_generate_report_doesnt_run_bundle_outdated_and_always_returns_no_withheld_gems - Dir.chdir(File.expand_path("../../fixtures", __dir__)) do + within_fixture_copy do updated_lockfile = File.read("Gemfile.lock.updated") BundlerCommands.expects(:read_updated_lockfile).with.returns(updated_lockfile) BundlerCommands.expects(:parse_outdated).never @@ -18,7 +18,7 @@ def test_generate_report_doesnt_run_bundle_outdated_and_always_returns_no_withhe end def test_generate_report_relaxes_gemfile_and_restores_it - Dir.chdir(File.expand_path("../../fixtures", __dir__)) do + within_fixture_copy do updatable_gems = { "sqlite3" => build(:outdated_gem, name: "sqlite3") } editor = GemfileEditor.new editor.expects(:with_relaxed_gemfile).returns(updatable_gems) diff --git a/test/integration/cli_integration_test.rb b/test/integration/cli_integration_test.rb index 665b49c..b57d10d 100644 --- a/test/integration/cli_integration_test.rb +++ b/test/integration/cli_integration_test.rb @@ -117,14 +117,6 @@ def run_bundle_update_interactive(argv:, key_presses: "\n") end end - def within_fixture_copy(fixture, &block) - fixture_path = File.join(File.expand_path("../fixtures", __dir__), fixture) - Dir.mktmpdir do |tmp| - FileUtils.cp_r(fixture_path, tmp) - Dir.chdir(File.join(tmp, File.basename(fixture_path)), &block) - end - end - def fetch_latest_gem_version_from_rubygems_api(name) WebMock.allow_net_connect! VCR.turned_off do diff --git a/test/test_helper.rb b/test/test_helper.rb index 0e30a1b..e8124c4 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -6,6 +6,15 @@ module BundleUpdateInteractive class Test < Megatest::Test + private + + def within_fixture_copy(fixture=".", &block) + fixture_path = File.join(File.expand_path("fixtures", __dir__), fixture) + Dir.mktmpdir do |tmp| + FileUtils.cp_r(fixture_path, tmp) + Dir.chdir(File.join(tmp, File.basename(fixture_path)), &block) + end + end end end From 11f921491b6712b3eea616c218500f01f179ef2f Mon Sep 17 00:00:00 2001 From: Matt Brictson Date: Wed, 26 Aug 2026 20:01:43 -0700 Subject: [PATCH 4/4] Add testing instructions to README --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a2707d7..13d68d0 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,8 @@ Everyone interacting in this project’s codebases, issue trackers, chat rooms a Pull requests are welcome! -To test your locally cloned version of `bundle update-interactive`, run `rake install`. This will install the gem and its executable so that you can try it out on other local projects. +To test your locally cloned version of `bundle update-interactive`, run `bundle exec rake install`. This will install the gem and its executable so that you can try it out on other local projects. -Before submitting a PR, make sure to run `rake` to see if there are any RuboCop or test failures. +Run `bundle exec rake` to run all tests and RuboCop checks. Please do this before opening a PR. + +To run a specific test, use `bin/megatest `.