2017-02-21 29 views
1

Я использую 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

у вас есть самоцвета 'gem 'test-unit'' в вашем файле gem? – Sravan

+0

@Iceman добавил test_helper.rb – cyborg

ответ

0

Я подозреваю, что проблема здесь:

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

Что это линия? Возможно ли, что миниатюрные/рельсы включают в себя линию?

Также обратите внимание, что minitest-rails не является миниатюром. Если вы добавили minitest-rails, я бы попытался удалить его (и строку include) и посмотреть, где он вас доставит.

Проверка новой установки приложения 4.2 Rails, я не вижу такой строки include в test_helper - вы ее добавили? Кроме того, minitest уже является зависимым от Rails, поэтому я не думаю, что вам нужно добавить его в свой Gem-файл.

+0

Да, что строка 4? – jpgeek

+0

** требуется «minitest/rails» **, также добавлен файл test_helper.rb для справки – cyborg

+0

Как я и думал. Попробуйте удалить его. – jpgeek

0

Способ использования 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"