2017-04-11 62 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,但它不会被调用。

相关问题