2017-04-11 65 views
0

此問題已過時,因爲我已刪除了該gem並自行實施了該功能。規格在單獨運行時通過,但在運行全套房時失敗

我有一些規格,當單獨運行時通過。但是當作爲整個套件運行(或者作爲整個spec文件)時,只有第一次通過,而其他時間則失敗。

這裏是有問題的PR:https://github.com/jmuheim/base/pull/75

我認爲它與加clerk寶石做。

只要運行rspec ./spec/features/pages/show_spec.rb,這將是結果:

6 examples, 5 failures 

Failed examples: 
rspec ./spec/features/pages/show_spec.rb:81 # Showing page offers links to browse page by page (previous page/next page) like a book 
rspec ./spec/features/pages/show_spec.rb:246 # Showing page versioning generates a diff view 
rspec ./spec/features/pages/show_spec.rb:227 # Showing page versioning displays empty versions if available 
rspec ./spec/features/pages/show_spec.rb:121 # Showing page versioning displays versions if available (if authorized) 
rspec ./spec/features/pages/show_spec.rb:111 # Showing page versioning doesn't display versions if none available 

雖然單獨運行的每個人時,他們通過,例如對於rspec ./spec/features/pages/show_spec.rb:121

1 example, 0 failures 

似乎有一些依賴性問題,或者數據庫可能未正確復位,或類似的東西。

這裏的問題的截圖,用戶(創建者/更新)似乎並不存在:

screenshot

+0

您能否從失敗的規格中顯示更多信息,實際失敗是什麼? – house9

+0

添加了屏幕截圖。 –

回答

1

我的猜測是,你必須有一個current_user(或User.current)可用,因此clerk可以設置creator/updater屬性。

請參見:clerk source code

在你的規格你應該User.current創建存根。簡單的例子:

before do 
    test_user = User.create!(name: 'test') 
    allow(User).to receive(:current).and return(test_user) 
end 

編輯:有可能是在測試套件的一些初始化代碼,設置了User.current,但它不會被調用。

相關問題