有没有办法从irb或pry会话中运行测试文件?
我尝试了load './testfile.rb
,但是没有在测试文件中运行测试。
我的测试文件如下所示:
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
答案 0 :(得分:4)
测试并不是真的要以交互方式运行,但是如果你查看ruby标准库并查看文件test/unit.rb
,你会看到at_exit
处理程序require 'test/unit'
{1}}:
at_exit do
unless $! || Test::Unit.run?
Kernel.exit Test::Unit::AutoRunner.run
end
end
所以,在irb
会话中您需要做的就是调用:
Test::Unit::AutoRunner.run
这将运行已加载的所有已从Test::Unit::TestCase
创建子类的测试。
如果您只想运行测试文件,而不将其加载到irb
会话中,您可以执行以下操作:
system 'ruby testfile.rb'
答案 1 :(得分:0)
它没有运行测试,因为你没有要求它。你只是创建类。
试试这个:
tests = SudokuTest.new
tests.test_initialize
答案 2 :(得分:0)
也许plymouth就是你想要的。它可以在失败的测试环境中自动启动Pry会话。