Skip to content

Commit

Permalink
deprecate seed & minitest verbose option & replace it by cli option
Browse files Browse the repository at this point in the history
  • Loading branch information
yannlugrin committed Feb 24, 2012
1 parent 3728ac2 commit 7bc9a5b
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 30 deletions.
16 changes: 11 additions & 5 deletions README.md
Expand Up @@ -72,6 +72,14 @@ guard 'minitest', test_folders: 'test/unit', test_file_patterns: '*_test.rb' do
end
```

You can pass any of the standard MiniTest CLI options using the :cli option:

```ruby
guard 'minitest', :cli => "--seed 123456 --verbose" do
# ...
end
```

If you use {spork-testunit}[https://github.com/timcharper/spork-testunit] you can enable it with (you'll have to load it before):

```ruby
Expand All @@ -83,11 +91,9 @@ end
### List of available options:

```ruby
:seed => 12345 # force minitest seed
:verbose => true # set minitest verbose mode, default: false
:notify => false # disable desktop notifications
:bundler => false # don't use "bundle exec" to run the minitest command, default: true
:rubygems => true # require rubygems when run the minitest command (only if bundler is disabled), default: false
:notify => false # disable desktop notifications
:bundler => false # don't use "bundle exec" to run the minitest command, default: true
:rubygems => true # require rubygems when run the minitest command (only if bundler is disabled), default: false
```

Development
Expand Down
28 changes: 21 additions & 7 deletions lib/guard/minitest/runner.rb
Expand Up @@ -12,14 +12,16 @@ def run(paths = [], options = {})
end

def initialize(options = {})
parse_deprecated_options(options)

@options = {
:verbose => false,
:notify => true,
:bundler => File.exist?("#{Dir.pwd}/Gemfile"),
:rubygems => false,
:drb => false,
:test_folders => %w[test spec],
:test_file_patterns => %w[*_test.rb test_*.rb *_spec.rb],
:cli => ''
}.merge(options)
[:test_folders,:test_file_patterns].each {|k| (@options[k]= [@options[k]].flatten.uniq.compact).freeze}
options= options.freeze
Expand All @@ -31,12 +33,12 @@ def run(paths, options = {})
system(minitest_command(paths))
end

def seed
@options[:seed]
def cli_options
@options[:cli] ||= ''
end

def verbose?
@options[:verbose]
@options[:cli] =~ /verbose/
end

def notify?
Expand Down Expand Up @@ -97,15 +99,27 @@ def minitest_command(paths)
else
cmd_parts << '-e \'GUARD_NOTIFY=false; MiniTest::Unit.autorun\''
end
cmd_parts << '--'
cmd_parts << "--seed #{seed}" unless seed.nil?
cmd_parts << '--verbose' if verbose?
cmd_parts << '--' << cli_options unless cli_options.empty?
end
cmd= cmd_parts.join(' ')
puts "Running: #{cmd}\n\n" if verbose?
cmd
end

def parse_deprecated_options(options)
options[:cli] ||= ''

[:seed, :verbose].each do |key|
if value = options.delete(key)
options[:cli] << " --#{key}"
if ![TrueClass, FalseClass].include?(value.class)
options[:cli] << " #{value}"
end

UI.info %{DEPRECATION WARNING: The :#{key} option is deprecated. Pass standard command line argument "--#{key}" to MiniTest with the :cli option.}
end
end
end
end
end
end
Expand Down
40 changes: 22 additions & 18 deletions spec/guard/minitest/runner_spec.rb
Expand Up @@ -6,26 +6,30 @@

describe 'options' do

describe 'seed' do
describe 'cli_options' do

it 'default should be nil' do
subject.new.seed.must_be_nil
it 'default should be empty string' do
subject.new.cli_options.must_equal ''
end

it 'should be set' do
subject.new(:seed => 123456789).seed.must_equal 123456789
it 'should be set with \'cli\'' do
subject.new(:cli => '--test').cli_options.must_equal '--test'
end

end

describe 'verbose' do
describe 'seed' do

it 'default should should be false' do
subject.new.verbose?.must_equal false
it 'should set cli options' do
subject.new(:seed => 123456789).cli_options.must_match /--seed 123456789/
end

it 'should be set' do
subject.new(:verbose => true).verbose?.must_equal true
end

describe 'verbose' do

it 'should set cli options' do
subject.new(:verbose => true).cli_options.must_match /--verbose/
end

end
Expand Down Expand Up @@ -107,7 +111,7 @@
runner = subject.new(:test_folders => %w[test], :seed => 12345)
Guard::UI.expects(:info)
runner.expects(:system).with(
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' -- --seed 12345"
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' -- --seed 12345"
)
runner.run(['test/test_minitest.rb'])
end
Expand All @@ -116,7 +120,7 @@
runner = subject.new(:test_folders => %w[test], :verbose => true)
Guard::UI.expects(:info)
runner.expects(:system).with(
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' -- --verbose"
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' -- --verbose"
)
runner.run(['test/test_minitest.rb'])
end
Expand All @@ -125,7 +129,7 @@
runner = subject.new(:test_folders => %w[test], :notify => false)
Guard::UI.expects(:info)
runner.expects(:system).with(
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=false; MiniTest::Unit.autorun' --"
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=false; MiniTest::Unit.autorun'"
)
runner.run(['test/test_minitest.rb'])
end
Expand All @@ -140,7 +144,7 @@
runner = subject.new(:test_folders => %w[test])
Guard::UI.expects(:info)
runner.expects(:system).with(
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' --"
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun'"
)
runner.run(['test/test_minitest.rb'])
end
Expand All @@ -149,7 +153,7 @@
runner = subject.new(:test_folders => %w[test], :rubygems => true)
Guard::UI.expects(:info)
runner.expects(:system).with(
"ruby -I\"test\" -r rubygems -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' --"
"ruby -I\"test\" -r rubygems -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun'"
)
runner.run(['test/test_minitest.rb'])
end
Expand All @@ -166,7 +170,7 @@
runner = subject.new(:test_folders => %w[test], :bundler => true, :rubygems => false)
Guard::UI.expects(:info)
runner.expects(:system).with(
"bundle exec ruby -I\"test\" -r bundler/setup -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' --"
"bundle exec ruby -I\"test\" -r bundler/setup -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun'"
)
runner.run(['test/test_minitest.rb'])
end
Expand All @@ -175,7 +179,7 @@
runner = subject.new(:test_folders => %w[test], :bundler => false, :rubygems => true)
Guard::UI.expects(:info)
runner.expects(:system).with(
"ruby -I\"test\" -r rubygems -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' --"
"ruby -I\"test\" -r rubygems -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun'"
)
runner.run(['test/test_minitest.rb'], :bundler => false, :rubygems => true)
end
Expand All @@ -184,7 +188,7 @@
runner = subject.new(:test_folders => %w[test], :bundler => false, :rubygems => false)
Guard::UI.expects(:info)
runner.expects(:system).with(
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun' --"
"ruby -I\"test\" -r ./test/test_minitest.rb -r #{@default_runner} -e 'GUARD_NOTIFY=true; MiniTest::Unit.autorun'"
)
runner.run(['test/test_minitest.rb'], :bundler => false, :rubygems => false)
end
Expand Down

0 comments on commit 7bc9a5b

Please sign in to comment.