LoadError:无法加载这样的文件 - MINITEST /导轨

问题描述:

我用Rails 4.2和Ruby 2.1.3,同时运行单元测试的情况下使用下面的命令LoadError:无法加载这样的文件 - MINITEST /导轨

rake test /../test/models/file_test.rb --trace 

我收到以下错误

** Invoke test (first_time) 
** Execute test 
** Invoke test:run (first_time) 
** Execute test:run 
rake aborted! 
LoadError: cannot load such file -- minitest/rails 
/opt/library/lib/ruby/gems/2.1.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require' 
/opt/library/lib/ruby/gems/2.1.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require' 
/opt/library/lib/ruby/gems/2.1.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency' 
/opt/library/lib/ruby/gems/2.1.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require' 
/opt/myapp/test/test_helper.rb:4:in `<top (required)>' 
/opt/myapp/test/test/controllers/packager_controller_test.rb:1:in `require' 
/opt/myapp/test/controllers/packager_controller_test.rb:1:in `<top (required)>' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/sub_test_task.rb:114:in `require' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/sub_test_task.rb:114:in `block (3 levels) in define' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/sub_test_task.rb:114:in `each' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/sub_test_task.rb:114:in `block (2 levels) in define' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/sub_test_task.rb:113:in `each' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/sub_test_task.rb:113:in `block in define' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:248:in `call' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:248:in `block in execute' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:243:in `each' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:243:in `execute' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:187:in `block in invoke_with_call_chain' 
/opt/library/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:180:in `invoke_with_call_chain' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:173:in `invoke' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/sub_test_task.rb:20:in `invoke_rake_task' 
/opt/library/lib/ruby/gems/2.1.0/gems/railties-4.2.1/lib/rails/test_unit/testing.rake:8:in `block in <top (required)>' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:248:in `call' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:248:in `block in execute' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:243:in `each' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:243:in `execute' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:187:in `block in invoke_with_call_chain' 
/opt/library/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:180:in `invoke_with_call_chain' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/task.rb:173:in `invoke' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:152:in `invoke_task' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:108:in `block (2 levels) in top_level' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:108:in `each' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:108:in `block in top_level' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:117:in `run_with_threads' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:102:in `top_level' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:80:in `block in run' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:178:in `standard_exception_handling' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/lib/rake/application.rb:77:in `run' 
/opt/library/lib/ruby/gems/2.1.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>' 
/opt/library/bin/rake:23:in `load' 
/opt/library/bin/rake:23:in `<main>' 
Tasks: TOP => test:run 

的Gemfile

gem 'minitest', '~> 5.1' 

试过后续根据SO提供的建议执行命令,但仍然出现错误。

require File.expand_path('../../test_helper', __FILE__) in file_test.rb 

也试过这种方式来运行测试:

ruby -Itest test/models/file_test.rb 

test_helper.rb中

ENV['RAILS_ENV'] ||= 'test' 
require File.expand_path('../../config/environment', __FILE__) 
require 'rails/test_help' 
require "minitest/rails" 

# To add Capybara feature tests add `gem "minitest-rails-capybara"` 
# to the test group in the Gemfile and uncomment the following: 
# require "minitest/rails/capybara" 

# Uncomment for awesome colorful output 
require "minitest/pride" 

class ActiveSupport::TestCase 
    # ActiveRecord::Migration.check_pending! 

    # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order. 
    # 
    # Note: You'll currently still have to declare fixtures explicitly in integration tests 
    # -- they do not yet inherit this setting 
    # fixtures :all 

    # Add more helper methods to be used by all tests here... 
end 

在此先感谢。如果我需要提供更多解释,请告诉我。

+0

什么是你的'test_helper.rb'是什么样子? – Iceman

+0

你的宝石文件中是否有宝石'宝石'test-unit''? – Sravan

+0

@Iceman添加了test_helper.rb – cyborg

我怀疑问题是在这里:

/opt/myapp/test/test_helper.rb:4 

那是什么线? 是否有任何机会minitest /铁轨包括线?

另请注意minitest-铁轨不是最小的。如果你已经添加了minitest-rails,我会尝试删除它(和包含行),并看看它在哪里得到你。

检查4.2 Rails应用程序的全新安装,我没有在test_helper中看到这样的包含行 - 是否添加了它?此外,minitest已经是Rails的依赖,所以我不认为你需要将它添加到你的Gem文件中。

+0

是的,什么是第4行? – jpgeek

+0

它是**需要“minitest/rails”**,还添加了test_helper.rb文件供参考 – cyborg

+0

正如我的想法。尝试删除它。 – jpgeek

我使用Minitest的方式是在Gemfile中,注意它是minitest-rails,而不仅仅是minitest。如果你不想要,你当然可以跳过capybara,但是对于功能/集成测试来说很不错。

group :development, :test do 
    gem 'minitest-rails' 
    gem 'minitest-rails-capybara' 
end 

然后在test_helper.rb

require "minitest/rails" 
require "minitest/rails/capybara"