2015-06-21 51 views
2

我正在使用minitest-reportersmini_backtrace寶石與Hartl教程中的設置。我的測試結果太長了。輸出包含了很多sql,並且還列出了每個測試。Minitest輸出太長了

enter image description here

基於this question時,SQL可以與抑制:

ActiveRecord::Base.logger.level = 1 

但我怎麼抑制每個測試的上市?這是輸出我從minitest-reporters寶石的文檔,如:

enter image description here

我如何獲得這樣的一個簡單的輸出?

+0

你試過標準輸出重定向? – Anatoly

回答

0

請使用Logger常數代替任意數字:例如Logger::INFO。另外,ActiveRecord日誌不應該出現在STDOUT上,而是進入日誌文件。例如,您可以用Logger.new("log/test.log")代替ActiceRecord :: Base.logger。

如果你沒有從MINITEST-記者預期的輸出,你可能需要強制默認記者:

Minitest::Reporters.use! Minitest::Reporters::DefaultReporter 
+0

朱利安,我用我的最小輸出的摘錄圖片更新了我的原始問題。假設我沒有改變Rails中的任何默認值(我認爲我沒做過),是否應該這麼長,幷包含所有這些信息?如果不是,我什麼都不經意地改變了?如果我不需要,我寧願不更改默認值(如ActiveRecord :: Base.logger)。 – tquill

+0

我不知道爲什麼我不得不添加這一行,但在'test.rb'中添加'config.log_level =:error'修復了它。我克隆的其他回購沒有這條線,並有最小的測試輸出...所以我不知道我做了什麼不同。 – tquill

+0

我以爲你在使用沒有Rails的AR。 你的實際問題是有些東西在搞亂你的'Rails.logger':所有的日誌都應該去'log/test.log',但是由於某種原因它們被推送到STDOUT。 嘗試刪除minitest-reporter和mini_backtrace並驗證當時會發生什麼。也許像在Rails加載之前或之後一樣在'test_helper.rb'中以另一種順序加載它們可以解決這個問題。 –