diff --git a/exe/retest b/exe/retest index a30cc2d9..891430f2 100755 --- a/exe/retest +++ b/exe/retest @@ -13,6 +13,11 @@ if options.help? return end +if options.version? + $stdout.puts Retest::VERSION + return +end + prompt = Retest::Prompt.new repository = Retest::Repository.new(files: Retest::VersionControl.files, prompt: prompt) command = Retest::Command.for_options(options) diff --git a/features/ruby-bare/retest/flags/version.rb b/features/ruby-bare/retest/flags/version.rb new file mode 100644 index 00000000..33bfdde1 --- /dev/null +++ b/features/ruby-bare/retest/flags/version.rb @@ -0,0 +1,13 @@ +class TestVersionFlag < Minitest::Test + def test_version + @output, @pid = launch_retest 'retest --version' + + assert_match /^1\.\d+\.\d+/, @output.read + end + + def test_version_short_flag + @output, @pid = launch_retest 'retest -v' + + assert_match /^1\.\d+\.\d+/, @output.read + end +end diff --git a/features/ruby-bare/retest/retest_test.rb b/features/ruby-bare/retest/retest_test.rb index e42723cf..e72d1cd3 100644 --- a/features/ruby-bare/retest/retest_test.rb +++ b/features/ruby-bare/retest/retest_test.rb @@ -10,6 +10,7 @@ require_relative 'scenarios/interruptions.rb' require_relative 'flags/help.rb' +require_relative 'flags/version.rb' $stdout.sync = true diff --git a/lib/retest/options.rb b/lib/retest/options.rb index 62d04805..ff890092 100644 --- a/lib/retest/options.rb +++ b/lib/retest/options.rb @@ -85,6 +85,12 @@ class Options desc "Print usage" end + flag :version do + short "-v" + long "--version" + desc "Print retest version" + end + option :polling do long '--polling' desc <<~DESC.strip @@ -133,6 +139,10 @@ def help? params[:help] end + def version? + params[:version] + end + def full_suite? params[:all] end diff --git a/test/retest/options/help.txt b/test/retest/options/help.txt index 7f4aea3a..8a47eb7e 100644 --- a/test/retest/options/help.txt +++ b/test/retest/options/help.txt @@ -23,6 +23,7 @@ Options: --rake Shortcut for a standard Rake setup --rspec Shortcut for a standard RSpec setup --ruby Shortcut for a Ruby project + -v, --version Print retest version Examples: Runs a matching rails test after a file change diff --git a/test/retest/options_test.rb b/test/retest/options_test.rb index da0b79fd..c21315d0 100644 --- a/test/retest/options_test.rb +++ b/test/retest/options_test.rb @@ -32,6 +32,17 @@ def test_help_text assert_equal File.read('test/retest/options/help.txt'), @subject.help end + def test_version? + @subject.args = ["--version"] + assert @subject.version? + + @subject.args = ["-v"] + assert @subject.version? + + @subject.args = ["-h"] + refute @subject.version? + end + def test_notify? refute @subject.notify? @subject.args = ["--notify"]