ruby - 从 irb 或 pry 运行单元测试

标签 ruby testing irb pry

有没有办法从 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/

相关文章:

ruby-on-rails - 有没有办法在 Rails 控制台内的输出上实现类似 grep 的功能

Ruby:将多个值插入字符串

java - 在 Eclipse 中,调试 TestNG 中不同组的配置

testing - 质量检查测试数据存储库工具

ruby - Ruby REPL 中的最后结果

ruby - 如何在 irb 控制台中使用 open() 从 .txt 文件中打印出基本文本? # ruby

ruby - 忽略 GEM,因为它的扩展未构建

ruby-on-rails - 由于 cookie 的 8 位编码(Rails 3 和 Ruby 1.9)导致错误 'incompatible character encodings: ASCII-8BIT and UTF-8'

testing - 与 Node.js 一起使用的最佳测试框架是什么?

ruby-on-rails - 如何在 .irbrc 中需要 gem,而不需要将其添加到 Rails Gemfile 中?