2016-03-07 106 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