[英]Suppressing stack trace when Rails tests error
我是Ruby on Rails的新手,正在編寫測試。 其中一些會產生異常。 我希望“ rake測試”輸出為我提供異常錯誤消息,而不是整個回溯。 (我想編寫行使未實現功能的測試,然后再填寫。)
例如,實際輸出:
Started
E
Finished in 0.081054 seconds.
1) Error:
test_should_fail(VersioningTest):
ActiveRecord::StatementInvalid: PGError: ERROR: null value in column "client_ip" violates not-null constraint
: INSERT INTO "revisions" ("created_at", "id") VALUES ('2011-02-03 20:14:17', 980190962)
/Users/rpriedhorsky/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract_adapter.rb:202:in `rescue in log'
/Users/rpriedhorsky/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract_adapter.rb:194:in `log'
/Users/rpriedhorsky/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/active_record/connection_adapters/postgresql_adapter.rb:496:in `execute'
[... etc. etc. etc. ...]
1 tests, 0 assertions, 0 failures, 1 errors, 0 skips
所需的輸出:
Started
E
Finished in 0.081054 seconds.
1) Error:
test_should_fail(VersioningTest):
ActiveRecord::StatementInvalid: PGError: ERROR: null value in column "client_ip" violates not-null constraint
1 tests, 0 assertions, 0 failures, 1 errors, 0 skips
我在相反的方向上找到了信息( 例如 ),但沒有找到抑制堆棧跟蹤的信息。
編輯:
輕松打開和關閉它們會很好。 如下所述,有時它們對於跟蹤錯誤很有用。
您可以看一下“回溯消音器”-對我來說(Rails 2.3.8),這是文件config / initializers / backtrace_silencers.rb:
# Be sure to restart your server when you modify this file.
# You can add backtrace silencers for libraries that you're using but
# don't wish to see in your backtraces.
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
# You can also remove all the silencers if you're trying do debug a
# problem that might steem from framework code.
# Rails.backtrace_cleaner.remove_silencers!
Rails.backtrace_cleaner.add_silencer {|line| line =~ /gems/}
Rails.backtrace_cleaner.add_silencer {|line| line =~ /passenger/}
看來您應該能夠像
Rails.backtrace_cleaner.add_silencer {|line| true}
在您的config / environments / test.rb文件中,這將清除回溯痕跡(盡管它可能僅適用於記錄器-我對這種方法不是很熟悉)。
但是問問自己-您真的要完全消除回溯嗎? 它們對於跟蹤錯誤很有用...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.