running a Unit test from irb or pry
irb, pry, ruby, testing
Solution
Tests are not really meant to be run interactively like that, but if you look in the ruby standard library and look at the file `test/unit.rb` you will see that it sets an `at_exit` handler when you `require 'test/unit'`:
at_exit do
unless $! || Test::Unit.run?
Kernel.exit Test::Unit::AutoRunner.run
end
end
So looking at this all you need to do in your `irb` session is call:
Test::Unit::AutoRunner.run
This will run all tests you have loaded that are subclassed from `Test::Unit::TestCase`.
If you just want to run the test file, without loading it into the `irb` session, you could simply do:
system 'ruby testfile.rb'
Problem
Is there a way to run a testfile from inside an irb or pry session? I tried `load './testfile.rb`, but that doesn't run the tests in the testfile. My Testfile looks like this: ``` require 'test/unit' require './sudoku.rb' class SudokuTest < Test::Unit::TestCase def test_initialize assert_nothing_raised do Sudoku.new(Array.new(9*9)) end assert_nothing_raised do Sudoku.new(Array.new(9*9,Field.new(nil))) end end end ```