有没有办法从 irb 或 pry session 中运行测试文件?
我尝试了 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
最佳答案
测试并不是真的要像那样以交互方式运行,但是如果你查看 ruby 标准库并查看文件 test/unit.rb
你会看到它设置了一个 at_exit
当您需要'test/unit'
时的处理程序:
at_exit do
unless $! || Test::Unit.run?
Kernel.exit Test::Unit::AutoRunner.run
end
end
所以看看这个,您在 irb
session 中需要做的就是调用:
Test::Unit::AutoRunner.run
这将运行您加载的所有测试,这些测试是 Test::Unit::TestCase
的子类。
如果您只想运行测试文件,而不将其加载到 irb
session 中,您可以简单地执行以下操作:
system 'ruby testfile.rb'
关于ruby - 从 irb 或 pry 运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669346/