Guard,Spork,Rspec& Rails 3

时间:2011-11-18 03:19:23

标签: ruby-on-rails ruby-on-rails-3 rspec guard spork

我跟着spork railscast video,当我试图守卫时,它给了我以下错误:

Guard is now watching at '/Users/m/work/'
Starting Spork for Test::Unit & RSpec 
Couldn't find a supported test framework that begins with 'testunit'

Supported test frameworks:
( ) Cucumber
(*) RSpec

Legend: ( ) - not detected in project   (*) - detected
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
Spork is ready and listening on 8989!
--> ERROR: Could not start Spork server for Test::Unit & RSpec. Make sure you can use it manually first.
Guard::RSpec is running, with RSpec 2!
Running all specs

看起来spork服务器启动正常,然后错误并尝试继续。我尝试过:等待选项120秒,它仍然有同样的问题。

如果我执行没有警卫和测试的测试,Spork工作正常护叉勺

环境:

  • Mac OSX
  • rails(3.1.1)
  • 后卫(0.8.8)
  • guard-rspec(0.5.4)
  • spork(0.9.0.rc9)
  • guard-spork(0.3.1)

我该如何调试此问题?我不知道从哪里开始。

2 个答案:

答案 0 :(得分:76)

我在Ubuntu上遇到了这个问题。我的解决方案很简单:

1)我停止了守卫

2)我删除了测试文件夹

3)开始守卫

这一次,而不是看到启动Spork for Test :: Unit& RSpec,我为RSpec开始Spork。因此spork自动识别出我的测试文件夹不再需要,而且一切都运行得很好。

有趣的是

Supported test frameworks:
( ) Cucumber
(*) RSpec

消息也消失了,我按照railscast获得了预期的结果。

我能得出的唯一结论是:

1)这不是操作系统相关的问题。

2)spork,rspec和测试单元在Rails上玩不好>有意义的v3.x应用程序。你不需要两者。更新 - 如果您需要,请参阅下面的更新答案。

显然我非常仔细地遵循了Railscast的说明,但我认真地建议您删除测试文件夹。

<强>更新 应该注意的是,根据以下来自@yuvilio的评论,可以让两者完美地结合在一起,其引用如下:

  

我认为问题不在于他们不相处。我让Cucumber / Rspec / testunit在spork中互相玩得很好。在我的gemfile中,除了rspec / cucumber / guard相关的宝石之外,我还添加了spork-testunit,guard-test,ruby-prof gems并运行了bundle install。然后,我引导testunit:bundle exec spork testunit --bootstrap。然后自定义test / test_helper.rb。然后更新了监视testunit的保护文件:bundle exec guard init test。当我守卫时,我获得了输出,包括用于RSpec的Spork服务器,Cucumber,Test :: Unit成功启动

答案 1 :(得分:17)

如果您不想删除测试文件夹,只需告诉警察忽略它:

guard 'spork', test_unit: false do
  # ...
end