在RubyMine中运行规范会导致"无法加载此类文件 - teamcity/spec/runner/formatter/teamcity/formatter(LoadError)"

chy*_*lli 50 ruby rspec ruby-on-rails rubymine ruby-on-rails-4

操作系统:Arch Linux,Rails版本:4,RubyMine:6.3

当我从工具运行规范 - 运行Rake任务 - 规范我总是得到这个错误:

/home/chylli/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1024:in`requirement':无法加载此类文件 - - teamcity/spec/runner/formatter/teamcity/formatter(LoadError)

但运行'debug spec:models'是可以的.

我尝试了什么:我在Run - edit配置下添加了'ruby arguments':

-I $ RUBYMINE_HOME/rb/testing/patch/bdd -I $ RUBYMINE_HOME/rb/testing/patch/common

但它不起作用.

Dav*_*uth 115

spring stop
Run Code Online (Sandbox Code Playgroud)

在从RubyMine运行rake,或直接运行specs,或使用spring执行任何其他操作之前,在命令行上.

每次在RubyMine中运行rake或specs或其他任何东西时都不需要这样做,只有当你以前通过运行rake或者在RubyMine之外开始运行的其他东西开始运行时才会这样做.spring stop当您从RubyMine切换回命令行时,您也不需要.

发生这种情况是因为如果在运行rake或者RubyMine以外的任何东西时Spring没有运行,spring将启动并预加载代码而不是特定于RubyMine的代码.显然,spring在启动后不知道如何加载丢失的代码.

  • 这个答案应该被接受,这正是我的环境中发生的事情(OSX不是像Linux那样的Linux). (5认同)
  • 如果在将spring添加到项目之前已经启动并运行了RubyMine,它仍然无法工作 - 但是在完全关闭RubyMine并重新启动之后,确实如此.(Linux上的RM7.0.2) (2认同)

the*_*man 5

我花时间解决了这个问题而无需重新启动弹簧.

我在spring-commands-rspec gem的fork中做了一个快速入侵Pull请求.

但它看起来不像repo是活动的,所以你可以通过将spring-commands-rspec条目切换到你的Gemfile 来使用我的修复:

gem 'spring-commands-rspec', git: 'https://github.com/thewoolleyman/spring-commands-rspec.git'
Run Code Online (Sandbox Code Playgroud)

HTH,:) - 乍得