【问题标题】:Running a spec in RubyMine results in "cannot load such file -- teamcity/spec/runner/formatter/teamcity/formatter (LoadError)"在 RubyMine 中运行规范会导致“无法加载此类文件 -- teamcity/spec/runner/formatter/teamcity/formatter (LoadError)”
【发布时间】:2014-07-02 08:03:08
【问题描述】:

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

当我从 Tools - Run Rake Task - spec 运行规范时,我总是收到此错误:

/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)

但可以运行“调试规范:模型”。

我尝试了什么:我在运行 - 编辑配置下添加了“ruby 参数”:

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

但它不起作用。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 rspec rubymine


    【解决方案1】:

    运行

    spring stop
    

    在从 RubyMine 运行 rake 或直接运行规范或执行其他任何使用 spring 的操作之前在命令行上。

    您不需要每次在 RubyMine 中运行 rake 或 specs 或其他任何东西时都执行此操作,前提是您之前通过运行 rake 或执行其他在 RubyMine 之外启动 spring 的方法来启动 spring。当您从 RubyMine 切换回命令行时,您也不需要spring stop

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

    【讨论】:

    • 这个答案应该被接受,这正是我的环境中发生的事情(OSX 不是像 OP 那样的 Linux)。
    • 在 OS X Mavericks 上为我工作。
    • 这也适用于我,RubyMine 7.0 + Ubuntu 14.10
    • 甜蜜!感谢您对原本迟钝的错误的出色修复。
    • 如果 RubyMine 在将 spring 添加到您的项目之前已经启动并运行,它仍然无法工作 - 但在完全关闭 RubyMine 并重新启动后,它可以工作。 (Linux 上 RM7.0.2)
    【解决方案2】:

    我花时间解决了这个问题,而无需重新启动 spring。

    我在 spring-commands-rspec gem 的 fork 中创建了 quick hack Pull Request

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

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

    HTH, :) -- 乍得

    【讨论】:

    • 这正是我一直在寻找的,并且无需重新启动 Spring 就可以解决我的问题。我很困惑为什么你被否决了。
    【解决方案3】:

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

    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。关闭RubyMine中的spring预加载器:

    在 RubyMine 中:CMD+Shift+A 键入spring pre-loader,将其关闭并重新运行规范。

    如果需要,不要忘记再次打开它。

    【讨论】:

    • 这让我发疯了......切换弹簧预加载器为我解决了问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 2019-06-23
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多