5

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
4

3 に答える 3

5

テストは実際にはそのようにインタラクティブに実行することを意図したものではありませんが、Ruby 標準ライブラリを調べてファイルを見ると、次のときにハンドラーがtest/unit.rb設定されていることがわかります。at_exitrequire 'test/unit'

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'
于 2012-05-20T03:29:59.263 に答える
0

あなたがそれを求めていないので、それはテストを実行しません。クラスを作成しているだけです。

これを試して:

tests = SudokuTest.new
tests.test_initialize
于 2012-05-19T22:42:08.980 に答える
0

多分プリマスはあなたが望むものです。失敗したテストのコンテキストで Pry セッションを自動的に開始できます。

于 2012-05-20T03:36:40.400 に答える