2011-09-02 74 views
1

我正在阅读Ruby on Rails 3教程,并按照指示设置了我的rails应用程序以使用rspec进行测试。每当我被指示时,我都会创建新的测试,并且测试会使用自动测试和spork自动运行。一切似乎都很好。然后,我为了测试一些代码创建了第二个应用程序,但是当我跑了几个测试在我的第二个应用程序会与命令:rspec在另一个应用程序中运行测试

$ bundle exec rspec spec/

...用于执行的第一个应用程序的测试。如何在一个应用程序中运行rspec在另一个应用程序中执行测试?我cd'ed到另一个目录,cd'回到第二个应用程序,并再次运行测试,但同样的事情发生。

为了纠正这种悲伤的状态,我关闭了计算机上的每个窗口,然后重新启动了计算机。我的电脑重新启动后,我打开一个终端窗口,cd'ed进入第二个应用程序的目录,我再一次发出了命令:

$ bundle exec rspec spec/

现在,我得到,说,“你不能有更多的错误比一个Rails :: Application(RuntimeError)“:

No DRb server is running. Running in local process instead ... /Users/me/.rvm/gems/[email protected]/gems/ railties-3.0.9/lib/rails/application.rb:63:in `inherited': You cannot have more than one Rails::Application (RuntimeError)

有什么明显的我失踪了吗?第一个应用程序的设置很费力,而且我尝试为我的第二个应用程序重复相同的设置,但我无法运行任何测试。这两个应用程序都有相同的Gemfiles。

osx 10.6.7

+0

我得出结论,我的问题与我的应用程序的名称 有关 - 它是test_app。我创建了另一个应用程序,并通过 广泛的设置后,我现在可以运行rspec测试。 为了让我的test_app正常工作,我尝试删除gemset并重新安装导轨和所有gem,并且仔细检查了spec/spec_helper.rb文件,但是我永远无法使测试正常工作:错误: “继承”:您不能有多个Rails :: Application(RuntimeError)' – 7stud

+0

这不是应用程序名称。我创建了另一个名为test_map的应用程序,并为该应用程序设置了一些简单的测试,并且运行时没有错误。我已经为麻烦的test_app至少删除了gemset十次,然后重新开始设置,但没有运气。 – 7stud

回答

0

您可以命名您的应用程序test_app。这可能与drb/spork有关。发布您的spec_helper.rb。另外,从spec_helper.rb中取出drb选项,注释掉Spork配置,将prefork块中的内容复制回spec_helper文件的底部(它曾经是的位置)。运行rspec规范而不使用bundle exec。如果这不起作用,请使用rspec/spec/some_file.rb运行一个测试。

相关问题