如何在 RSpec 测试中打开 ActiveRecord 的 SQL 调试日志记录?

发布于 2024-10-21 00:55:41 字数 187 浏览 2 评论 0原文

我对我的模型进行了一些 RSpec 测试,并且我想打开 SQL ActiveRecord 日志记录,就像在 Rails 服务器模式中看到的那样。怎么做呢?

开始测试

RAILS_ENV=test bundle exec rspec my/test_spec.rb

我以“谢谢”

I have some RSpec tests for my models and I would like to turn on SQL ActiveRecord logging just like I see in the Rails server mode. How to do that?

I start my tests with

RAILS_ENV=test bundle exec rspec my/test_spec.rb

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

原谅过去的我 2024-10-28 00:55:41

您可以尝试在测试中的某个位置将 ActiveRecord 记录器设置为标准输出。如果您使用 rspec,也许在规范助手中?

ActiveRecord::Base.logger = Logger.new(STDOUT)

You could try setting the ActiveRecord logger to stdout in your test somewhere. If you're using rspec, maybe in the spec helper?

ActiveRecord::Base.logger = Logger.new(STDOUT)
一杆小烟枪 2024-10-28 00:55:41

默认情况下,所有数据库查询都将在测试模式下记录。它们将位于 log/test.log 中。

By default, all your db queries will be logged already in test mode. They'll be in log/test.log.

笨死的猪 2024-10-28 00:55:41

设置

config.log_level = :info 

在测试环境中

set

config.log_level = :info 

in test environment

陌生 2024-10-28 00:55:41

如果其他答案不适用于您的情况,请检查您的测试环境的“日志级别”。

它的默认值是'debug',它将输出Rails生成的SQL。如果设置为“info”,则 SQL 将丢失。

if others answers don't work in your case, please check the 'log level' of your test environment.

its default is 'debug', which will output the SQL generated by Rails. if it was set to "info", the SQL will be missing.

夜深人未静 2024-10-28 00:55:41

在您的 test.rb 中:

Rails.application.configure do
  ...
  config.logger = ActiveSupport::Logger.new(STDOUT)
end

In your test.rb:

Rails.application.configure do
  ...
  config.logger = ActiveSupport::Logger.new(STDOUT)
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文