2016-03-07 103 views
0

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

子弹宝石在所有其他环境中正常工作,除了测试(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 但我也不能得到一个直接的答案

+0

你能制作一个小例子来重现这个(http://stackoverflow.com/help/mcve)吗? –

+0

只是为了澄清:你是否希望Bullet在运行规范时被执行,或者不是?因为如果你设置了Bullet.raise,子弹将停止运行规格。 –

+0

@ Robin van Dijk是的我需要在运行规格时执行子弹 –

回答

2

你可以在测试环境中设置Bullet.raise = false然后测试不会下降。或者禁用N + 1查询来定义测试Bullet.n_plus_one_query_enable = true