ошибка инициализации огурца / рельсов константа DatabaseCleaner (NameError) - PullRequest
10 голосов
/ 30 марта 2011

Кто-нибудь знает, что вызывает эту ошибку при запуске cucumber features?

uninitialized constant DatabaseCleaner (NameError)

Ответы [ 4 ]

14 голосов
/ 30 марта 2011

Добавьте эту строку в ваш Gemfile:

gem 'database_cleaner'

Это потому, что cucumber-rails не зависит автоматически от database_cleaner, потому что вы можете создавать приложение Rails без базы данных, и поэтому вы должныявно требует этого.

4 голосов
/ 30 марта 2011

DatabaseCleaner - это библиотека для «очистки» вашей базы данных. Cucumber будет использовать его между запущенными функциями, чтобы убедиться, что ваша БД находится в тестируемом состоянии (т.е. пусто).

Идея состоит в том, что вы строите правильные данные в своих Given предложениях для каждого теста

Эта ошибка просто означает, что DatabaseCleaner не требуется должным образом.

Различные версии Rails / Cucumber имеют разные способы настройки всего и предоставляют разные функциональные возможности в этом отношении, поэтому трудно действительно дать вам правильное решение, не зная ваших настроек.

Несколько советов:

Посмотрите на огуречный рельс драгоценный камень. Он дает вам много хороших вещей, таких как генераторы, а также рейк-задачи, так что вы можете запустить rake cucumber вместо непосредственного использования огурца. Часто генераторы создают файл конфигурации, который требует для вас database_cleaner.

В противном случае, добавьте database_cleaner в свой список зависимостей и поместите require 'database_cleaner' где-нибудь в коде вашего набора тестов.

1 голос
/ 11 декабря 2011

Я только что столкнулся с проблемой. Я понизил свои огурцы до версии 1.0.6 и получил это сообщение:

uninitialized constant Cucumber::Rails::Database (NameError)

когда я использую cucumber 1.0.6 (не последняя версия) и database_cleaner v. 1.7.0. Для исправления ошибки я просто запускаю эту команду (на Rails 3.1.3):

rails g cucumber:install

Он предложит вам заменить файл features/support/env.rb. Просто ответьте Y, и вы снова сможете запустить rake cucumber:ok.

0 голосов
/ 18 января 2019

Я использую весну, а spring stop у меня работает

...