Ответ 1
ruby 1.9.2 удалил ".", текущий каталог, из пути загрузки. Я должен сделать это, чтобы заставить его работать:
require 'test_helper'
и назовите его так:
ruby -I. unit/person_test.rb
Я пытаюсь запустить отдельные тесты с помощью ruby test/unit/mytest.rb, но всегда получаю ошибку "нет такого файла для загрузки - test_helper". Google представил несколько предложений, но никто из них не работал у меня. Я запускаю Rails 3.0, Ruby 1.9.2 (через RVM) на Ubuntu 10.10
Вот что я пробовал до сих пор - любые предложения действительно оценили
Любые предложения очень ценятся - я в тупике.
ruby 1.9.2 удалил ".", текущий каталог, из пути загрузки. Я должен сделать это, чтобы заставить его работать:
require 'test_helper'
и назовите его так:
ruby -I. unit/person_test.rb
В верхней части тестовых файлов добавлено следующее.
require File.expand_path("../../test_helper", __FILE__)
Это восстанавливает предыдущее поведение и позволяет простому вызову:
ruby test/unit/person_test.rb
Я сам сегодня сражался с этой штукой, и мне не нравилось большое требование с целым путем к файлу и тому подобное...
В моем случае это была ошибка Rakefile..
теперь он выглядит так:
require "bundler/gem_tasks"
require "rake/testtask"
Rake::TestTask.new do |t|
t.libs << "lib"
t.libs << "test" # here is the test_helper
t.pattern = "test/**/*_test.rb"
end
task default: :test
Я знаю его старый и имеет ответ, отмеченный принятым, но, возможно, это тоже поможет кому-то:) иметь хороший день
Возможно, вам следует запустить тестовые примеры следующим образом:
$ rake test
Нет необходимости изменять инструкцию "require" из сгенерированного кода, если вы используете rake.
Протестировано с Ruby 1.9.3 и Rails 3.2.8
Rails 1.9 больше не включает текущий каталог в LOAD_PATH, что вызывает эту проблему. У вас есть несколько вариантов.
вызовите тест с опцией -I из каталога приложения:
ruby -I test test/functional/test_foo.rb
и используйте запрос без пути:
require "test_helper.rb"
используйте полный путь в требовании. Либо
требуется "путь"
требуется Pathname.new(FILE). realpath.dirname.join('/../test_helper.rb')
или
require (File.dirname(File.realdirpath(__FILE__)) + '/../test_helper.rb')
Если вы создаете драгоценный камень или движок, запуск rake test
в каталоге тестового фиктивного приложения приведет к этой ошибке. Выполнение rake test
в корневой части драгоценного камня позволит избежать этого.