如果我使用 spring rake
,它会运行我的项目规范以处理指定rake
任务。它只是完全忽略在命令行中指定的任何内容并运行规范。下面是一个示例:
$ spring rake routes
/Users/rsilva/.rbenv/versions/2.0.0-p353/bin/ruby -I/Users/rsilva/.rbenv/versions/2.0.0- p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.1.2/lib:/Users/rsilva/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-support-3.1.0/lib /Users/rsilva/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.1.2/exe/rspec --pattern spec/**{,/*/**}/*_spec.rb
Run options: exclude {:expensive=>true, :migration=>true}
# then runs all the project specs
如果我不使用spring
,它可以正常工作:
$ bundle exec rake routes
Prefix Verb URI Pattern Controller#Action
# then prints out all the routes
我在我的 Gemfile 之外使用 Spring(我gem install spring
这样做了)。
以下是我正在使用的spring
和spring-commands-rspec
的版本:
$ gem list --local | grep -P 'spring'
spring (1.1.3)
spring-commands-rspec (1.0.2)
这是我的~/.spring.rb
:
$ cat ~/.spring.rb
require 'spring-commands-rspec'
如何让spring rake
执行指定的任务?
看起来 rake 只是执行默认任务,而不考虑传递的参数。这似乎是 rake 10.4.0 和 spring 的问题。尝试将 rake 升级到 10.4.1。
https://github.com/rails/spring/issues/366