5

我目前正在使用带有 Guard、Rspec 和 Cucumber 的 Spork。我想搬到 Spring,但找不到任何关于我需要更改的文档。

具体来说,我很好奇是否需要更改我的:

require 'spork'

Spork.prefork do
  # ...
end

Spork.each_run do
  # ...
end

...类似于:

require 'spring'

Spring.prefork do
  # ...
end

Spring.each_run do
  # ...
end

但是,我知道没有,Spring.prefork因为文档是这样说的。那么我应该简单地删除对的引用Spork还是需要用某些东西替换它们?

4

2 回答 2

4

正如您在问题中提到的那样,没有 Prefork 块。文档提供了一种解决方法:只需将现有Spork.prefork块移动到初始化程序或任何它将被 Rails 拾取并在加载时运行的地方。

来自https://github.com/rails/spring#running-code-before-forking

没有 Spring.before_fork 回调。要在 fork 之前运行某些内容,您可以将其放在应用程序初始化时运行的任何文件中,例如~/.spring.rb或.config/spring.rbconfig/application.rbconfig/environments/*.rbconfig/initializers/*.rb

至于你的Spork.each_run块,因为你使用的是 Rspec,你可以将它移到一个before(:suite)块中。请参阅钩子之前和之后的 Rspec 文档

于 2015-02-10T13:31:19.677 回答
1

只需删除所有出现的Spork并安装spring.

之后运行bundle exec spring binstub --all

现在,如果您运行bin/rails c它将使用spring.

rspec使用spring-commands-rspec

于 2015-01-13T18:20:28.353 回答