Тесты Rails не могут найти test_helper - PullRequest
27 голосов
/ 17 октября 2010

Я пытаюсь запустить отдельные тесты через ruby ​​test / unit / mytest.rb, но я всегда получаю ошибку «нет такого файла для загрузки - test_helper». Google выдвинул несколько предложений, но ни одно из них не помогло мне. Я использую Rails 3.0, Ruby 1.9.2 (через RVM) в Ubuntu 10.10

Вот что я пробовал до сих пор - любые предложения действительно ценятся

  • Изменено "require test_helper" на "require File.dirname ( FILE ) +" /../test_helper " "в test / unit / mytest_test.rb. Возвращает" нет такого файла для загрузки - test / unit /../ test_helper "
  • Пробовал запуск rvm test / unit / mytest_test.rb То же, что и выше
  • Пробовал запускать ruby ​​-I test / unit / mytest_test.rb. Нет сообщений на терминал. Примерно через 5 минут ожидания чего-то, ctrl + c'd из этого

Любые предложения очень ценятся - я в тупике.

Ответы [ 6 ]

24 голосов
/ 17 октября 2010

ruby ​​1.9.2 удалил ".", Текущий каталог, из пути загрузки.Я должен сделать это, чтобы заставить это работать:

require 'test_helper'

и назвать это как:

ruby -I. unit/person_test.rb 
12 голосов
/ 21 ноября 2013

Сегодня я боролся с этим сам, и мне не нравятся большие потребности с полным путем к файлу и прочему ...

В моем случае это была ошибка 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

Я знаю, что он старый и ответ помечен как принятый, но, возможно, это тоже кому-то поможет :) хорошего дня

12 голосов
/ 30 ноября 2011

Я добавил следующее в начало моих тестовых файлов.

require File.expand_path("../../test_helper", __FILE__)

Это восстанавливает предыдущее поведение и позволяет просто выполнять вызов:

ruby test/unit/person_test.rb
6 голосов
/ 26 августа 2012

Может быть, вы должны запустить свои тесты таким образом:

$ rake test

Нет необходимости менять оператор «require» из сгенерированного кода, если вы используете rake.

Протестировано с Ruby 1.9.3 и Rails 3.2.8

4 голосов
/ 03 июня 2013

Если вы создаете гем или движок, запуск rake test в каталоге приложения-заглушки вызовет эту ошибку.Запуск rake test в корне драгоценного камня поможет избежать этого.

3 голосов
/ 14 сентября 2012

Rails 1.9 больше не включает текущий каталог в LOAD_PATH, что вызывает эту проблему. У вас есть несколько вариантов.

  1. вызвать тест с параметром -I из каталога приложения:

    ruby ​​-I тестовый тест / функциональный / test_foo.rb

и используйте требование без пути:

require "test_helper.rb"
  1. использовать полный путь в требовании. Или

    требуется 'pathname'

    требуется Pathname.new ( FILE ). Realpath.dirname.join ('/../ test_helper.rb')

или

require (File.dirname(File.realdirpath(__FILE__)) + '/../test_helper.rb')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...