【问题标题】:Minitest output too longMinitest 输出太长
【发布时间】:2015-09-06 18:17:07
【问题描述】:

我将 minitest-reportersmini_backtrace gem 与 Hartl 教程中的设置一起使用。我的测试输出太长了。输出包括很多 sql 并且还列出了每个测试。

基于this question,可以使用以下命令抑制sql:

ActiveRecord::Base.logger.level = 1

但是如何抑制每个测试的列表?这是我想要的 minitest-reporters gem 文档的输出:

如何获得这样的简单输出?

【问题讨论】:

  • 你试过STDOUT重定向吗?

标签: ruby-on-rails ruby minitest


【解决方案1】:

请使用 Logger 常量而不是任意数字:例如 Logger::INFO。此外,ActiveRecord 日志不应该出现在 STDOUT 上,而是进入一个日志文件。例如,您可以将 ActiceRecord::Base.logger 替换为 Logger.new("log/test.log")

如果您没有来自 minitest-reporters 的预期输出,您可能需要强制使用默认报告器:

Minitest::Reporters.use! Minitest::Reporters::DefaultReporter

【讨论】:

  • Julien,我用我的 minitest 输出的摘录图片更新了我的原始问题。假设我没有更改 Rails 中的任何默认值(我认为我没有更改),它应该那么长并且包含所有这些信息吗?如果不是,我无意中改变了什么?如果不需要,我宁愿不更改默认值(如 ActiveRecord::Base.logger)。
  • 我不知道为什么我必须添加这一行,但在 test.rb 中添加 config.log_level = :error 修复了它。我克隆的其他存储库没有这一行并且测试输出最少......所以我不确定我是否做了不同的事情。
  • 我以为您使用的是没有 Rails 的 AR。您的实际问题是您的Rails.logger 有问题:所有日志都应该发送到log/test.log,但由于某种原因它们被推送到STDOUT。尝试删除 minitest-reporters 和 mini_backtrace 并验证接下来会发生什么。也许在 Rails 加载之前或之后以 test_helper.rb 中的另一个顺序加载它们可以解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 2022-06-21
  • 1970-01-01
相关资源
最近更新 更多