diff --git a/lib/ttnt/testtask.rb b/lib/ttnt/testtask.rb index ee888b9..d8dc538 100644 --- a/lib/ttnt/testtask.rb +++ b/lib/ttnt/testtask.rb @@ -71,10 +71,17 @@ def define_run_task if tests.empty? STDERR.puts 'No test selected.' else - args = - "#{@rake_testtask.ruby_opts_string} #{@rake_testtask.run_code} " + - "#{tests.to_a.join(' ')} #{@rake_testtask.option_list}" - run_ruby args + if ENV['ISOLATED'] + tests.each do |test| + args = "#{@rake_testtask.ruby_opts_string} #{test} #{@rake_testtask.option_list}" + run_ruby args + end + else + args = + "#{@rake_testtask.ruby_opts_string} #{@rake_testtask.run_code} " + + "#{tests.to_a.join(' ')} #{@rake_testtask.option_list}" + run_ruby args + end end end end diff --git a/test/integration_test.rb b/test/integration_test.rb index c322f43..50da4e9 100644 --- a/test/integration_test.rb +++ b/test/integration_test.rb @@ -44,6 +44,15 @@ def test_tests_are_selected_based_on_changes_in_current_working_tree output = rake('ttnt:test:run') assert_match '2 runs, 2 assertions, 2 failures', output[:stdout] end + + def test_isolated + # Make TTNT select all tests + git_rm_and_commit("#{@repo.workdir}/.ttnt", 'Remove .ttnt') + ENV['ISOLATED'] = '1' + output = rake('ttnt:test:run') + ENV.delete('ISOLATED') + assert_equal 3, output[:stdout].split('# Running:').count + end end class AdditionAmongComments < TTNT::TestCase::AdditionAmongComments