【问题标题】:RubyMine Unit tests - Test Framework quit unexpectedlyRubyMine 单元测试 - 测试框架意外退出
【发布时间】:2014-08-25 13:19:24
【问题描述】:

当我尝试从 RubyMine 中运行测试时,我遇到了问题。但奇怪的是,当我从命令行运行测试时它工作正常。

“测试框架意外退出”

/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -Itest /Users/sabour/Desktop/EIP/project/test/controllers/categories_controller_test.rb
Testing started at 1:39 AM ...
Run options: --seed 14336

# Running tests:

/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228: warning: nested repeat operator + and ? was replaced with '*'
...

Finished tests in 2.554592s, 1.1744 tests/s, 8.6119 assertions/s.

3 tests, 22 assertions, 0 failures, 0 errors, 0 skips

Process finished with exit code 0

也许问题出在那一行?

/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:警告:嵌套重复运算符 + 和?被替换为 '*' ...

模式:测试脚本 使用预加载服务器:Ruby 参数: -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -Itest Ruby SDK: 项目

但我很想拥有这样的东西:

谢谢

【问题讨论】:

  • 从您打印的内容来看,所有测试都以退出代码 0 结束。警告与此无关,应该很容易修复。
  • 我添加了一些屏幕。我知道这只是一个警告,但我希望获得与第二个屏幕相同的视图。
  • 有什么解决办法吗?我也有同样的问题。
  • 不确定它是否真的是修复,但我 1) 关闭了 RubyMine,2) 删除了项目的 .idea 文件夹,3) 重新打开了项目并且测试再次可用

标签: ruby-on-rails unit-testing rvm rubymine jetbrains-ide


【解决方案1】:

在他们的在线帮助中有一个用于设置 RubyMine 测试的nice tutorial,它帮助我解决了与您描述的相同的问题(用于Test::Unit 风格的测试)。基本上,您需要将 minitestminitest-reporters gem 包含到您的项目中,并添加调用以使用新格式的测试报告:

# Gemfile
group :test do
  gem 'minitest'
  gem 'minitest-reporters'
end

# test/test_helper.rb
require 'minitest/reporters'
MiniTest::Reporters.use!

查看教程了解更多选项。

【讨论】:

  • 谢谢!一切准备就绪,只需要 test_helper.rb 中的魔法线
【解决方案2】:

我遇到了同样的问题,这是由于没有安装(全局?)测试库的 ruby​​ gems 引起的。例如,对于 minitest 测试框架(您没有指定使用哪一个),只需从命令行运行:

gem install minitest
gem install minitest-reporters

这解决了我的问题。

【讨论】:

  • 这也解决了我的问题。但是,我必须明确将 minitest 版本定义为 '~> 4.7.5',因为它是一个较旧的项目...
  • 解决了我的问题:我使用标准的 Test::Unit,起初它只使用与 ruby​​ 捆绑的版本。我在我的 Gemfile 中添加了带有 gem 'test-unit', '~> 3.0.1' 的测试单元 gem,在使用 Bundler 更新后,RubyMine 开始识别我的测试。
  • 这对我不起作用。我的库文件夹中什至没有 Gems 文件夹。
  • 谢谢! RubyMine 没有自动安装 minitest gem,因为它运行在 Linux 上;一旦我运行“sudo gem install ...”就开始工作。
  • 安装这些 gem 后,我不得不重新启动 IDE,以使一切正常。
【解决方案3】:

从 RubyMine(但不是从命令行)运行时,我遇到了同样的问题。已通过重启 spring 修复:

bin/spring stop
bin/spring status

【讨论】:

  • RubyMine 7.0.4 和 Rails 4.2 为我解决了这个问题。谢谢。
【解决方案4】:

如果您有两个具有相同名称的测试,您也可能会收到此错误。

【讨论】:

    【解决方案5】:

    您可以通过为 RSpec 指定 PATH 来修复它。为了在 Ubuntu 中找到正确的路径,我使用了命令

    哪里是 rpsec

    在RubyMine中,进入菜单“Run”>“Edit Configurations”,勾选“Use custom RSpec runner script”,并设置之前找到的路径。

    【讨论】:

      【解决方案6】:

      我遇到了同样的问题,我通过从 Gemfile 中删除 'guard-minitest' 解决了这个问题

      【讨论】:

        【解决方案7】:

        您应该确保您的测试套件使用RAILS_ENV=test 运行

        对于 RubyMine,您可以在 Run > Edit Configurations.. > Choose test suite you want to run (i.e. spec: project_name) > Environment variables 中进行设置,然后添加上面提到的变量。

        【讨论】:

          【解决方案8】:

          当某些 gem 未检出时,您可能会收到此错误,因此您需要运行 bundle install。从终端运行您的测试,如果是这种情况,您将收到错误

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-04-03
            • 2020-03-20
            • 1970-01-01
            • 2016-01-29
            • 2019-11-10
            • 2014-11-28
            • 1970-01-01
            • 2019-09-01
            相关资源
            最近更新 更多