1

テストには Riot ( https://github.com/thumblemonks/riot ) を使用していますが、他のものを使用することもできます。

次のようなテスト出力が得られます。

> ruby my_test_file.rb

Running a test
  + something works
  + something else works
  - something failed

プログラムでこの情報にアクセスしたいと思います。何かのようなもの:

test = TestClass.load("my_test_file.rb")
result = test.run
result.errors # some array
4

1 に答える 1

2

私自身の質問に答えます。誰かが興味を持っている場合は、より詳細な回答を投稿できます。

その要点は、テストファイルを評価し、評価されたテストからコンテキストを取得することです:

Riot.alone! # so Riot doesn't automatically run the tests

["/path/to/test/file"].each do |test_file|
  eval(IO.read(path), binding, test_file) # load test file

  Riot.root_contexts.each do |context|
    reporter = MyReporter.new
    context.run reporter
    # do something cool with reporter results   
  end

  Riot.root_contexts.clear # clean out root_contexts so it's clean for the next run
end

MyReporter は、合格/不合格のテスト結果を処理する実装です。https://github.com/thumblemonks/riot/blob/master/lib/riot/reporter.rbを参照してください。

于 2011-12-13T09:14:29.240 に答える