在RubyMine中运行规范导致“无法加载这样的文件 – teamcity / spec / runner / formatter / teamcity / formatter(LoadError)”

操作系统: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`require':无法加载这样的文件 – – teamcity / spec / runner / formatter / teamcity / formatter(LoadError)

但运行“debugging规范:模型”是可以的。

我试过的:我在运行编辑configuration下添加了“ruby arguments”

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

但它不起作用。

spring stop 

在从RubyMine运行rake之前的命令行上,或者直接运行规范,或者做其他使用spring的东西。

只要你以前通过运行rake或者在RubyMine之外的其他地方做了一些其他的事情,你就不需要每次运行Rake或者specs或者RubyMine的时候都这样做。 从RubyMine切换回命令行时,您也不需要spring stop

发生这种情况的原因是,如果在运行rake或RubyMine之外的任何时候没有运行spring,Spring将启动并预加载您的代码,但不是RubyMine特定的代码。 很明显,spring不知道如何在启动后加载缺less的代码。

我花了时间来解决这个问题,而不需要重新启动弹簧。

在我的spring-commands-rspec gem的fork中有一个快速入侵 请求 。

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

 gem 'spring-commands-rspec', git: 'https://github.com/thewoolleyman/spring-commands-rspec.git' 

HTH,:) – 乍得

今天有同样的问题,我不得不采取不同的行动:

spring stop会告诉我, Spring is not running

所以我必须

1.手动杀死他们

 ps aux | grep spring 

会给我

 thomasromera 27841 [...] | spring app | started 23 hours ago | development mode thomasromera 38931 [...] | spring app | started 18 hours ago | development mode thomasromera 54661 [...] | spring app | started 4 mins ago | development mode thomasromera 27840 [...] | spring server | started 23 hours ago 

然后杀死所有服务器+应用程序

 kill 27840 kill 38931 ... 

2.closuresRubyMine中的弹簧预加载器:

在RubyMine中: CMD + Shift + 一个types的spring pre-loader ,将其closures并重新运行规范。

如果你需要的话,别忘了再打开它。