2015-08-25 42 views
1

我正在使用Ruby 2.2。如果成功或失敗,我需要運行單元測試並獲取信息。我正在瀏覽測試單元和minitest的文檔(在Ruby 2.2中提供單元測試的建議寶石),但我似乎無法找到返回或存儲某處測試結果信息的方法。Ruby單元測試 - 訪問測試結果(成功/失敗)?

我需要的是測試失敗/成功的信息,我需要從Ruby的級別訪問它。我想我將不得不使用特定的方法來運行測試 - 到目前爲止,我只能運行測試文件而不是通過調用任何方法來運行單個測試。

也許這只是我對Ruby的不熟悉,無論如何,我將不勝感激任何幫助。

+0

您想以編程方式運行測試嗎?我的意思是,通常測試通過/失敗報告給文件,控制檯或兩者。 –

+0

我寧願在Ruby的級別上訪問它。如果這是不可能的,那麼文件 - 但我想這將是文本形式,就像控制檯上的結果?我需要準備有關測試失敗次數的統計信息,我寧願忽略解析這種輸出。我不知道如何將結果保存到文件中。 – charlie

+0

聽起來你可能想考慮現有的CI解決方案,以避免重複他們已經做的事情,但YMMV。 –

回答

1

也許你可以使用Ruby運行shell命令並返回結果的能力來運行測試。

下面是test-unit一個例子:

test_output = `ruby test.rb --runner console --verbose=progress` 

failed_tests = test_output.chomp.split('').count('F') 
passed_tests = test_output.chomp.split('').count('.') 

puts "P: #{passed_tests}, F: #{failed_tests}" 

我們使用--verbose=progress選項,使我們得到最小輸出。它看起來象下面這樣:

.F...F 

我們指望的F數找出了多少測試失敗。 對於大約測試輸出,示例程序將打印:

​​
+1

謝謝!這不是我想象的那樣,但它似乎在伎倆,所以非常感謝你:) – charlie