【问题标题】:using Bullet gem for testing with rspec使用 Bullet gem 进行 rspec 测试
【发布时间】:2016-03-07 13:11:58
【问题描述】:

我正在使用 rspec 或测试 API。 同时我正在使用子弹 gem 来识别 N+1 查询问题。

Bullet gem 在除 test(rspec) 之外的所有其他环境中都能正常工作

子弹宝石表示

Bullet::Notification::UnoptimizedQueryError: user: karthik
Unused Eager Loading detected

并停止测试进程运行。

如果我删除相应的急切加载,它可以正常工作,但在开发的服务器日志中

user: karthik
/api/v1/grades
N+1 Query detected
  Grade => [:grade_details]
  Add to your finder: :includes => [:grade_details]
N+1 Query method call stack

我还提到了https://github.com/flyerhzm/bullet/issues/115 但我也无法得到直接的答案

【问题讨论】:

  • 你能制作一个重现这个的小例子吗(stackoverflow.com/help/mcve)?
  • 只是为了澄清:您是否希望在运行规范时执行 Bullet?因为如果您设置了 Bullet.raise,Bullet 将停止运行规范。
  • @Robin van Dijk 是的,我需要在运行规范时执行子弹

标签: ruby-on-rails rspec rubygems


【解决方案1】:

您可以在测试环境中设置Bullet.raise = false,然后测试不会失败。或禁用 N+1 查询以使用 Bullet.n_plus_one_query_enable = true 定义测试

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2016-06-30
    • 2017-07-22
    • 2019-03-08
    • 1970-01-01
    相关资源
    最近更新 更多