黄瓜/rails错误未初始化常量DatabaseCleaner(NameError)

发布于 2024-10-27 18:32:05 字数 135 浏览 1 评论 0原文

任何人都知道运行cucumber features时导致此错误的原因是什么?

uninitialized constant DatabaseCleaner (NameError)

Anyone have any idea what is causing this error when running cucumber features?

uninitialized constant DatabaseCleaner (NameError)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

寄离 2024-11-03 18:32:05

将此行添加到您的 Gemfile 中:

gem 'database_cleaner'

这是因为 cucumber-rails 不会自动依赖于 database_cleaner,因为您可能正在构建没有数据库的 Rails 应用程序,因此您必须明确要求它。

Add this line to your Gemfile:

gem 'database_cleaner'

This is because cucumber-rails doesn't automatically depend on database_cleaner because you may be building a Rails application without a database, and so you must explicitly require it.

负佳期 2024-11-03 18:32:05

DatabaseCleaner 是一个用于“清理”数据库的库。 Cucumber 将在运行功能之间使用它,以确保您的数据库处于可测试状态(即空)。

这个想法是,您在每个测试的 Given 子句中构建正确的数据。

此错误仅意味着没有正确需要 DatabaseCleaner。

不同版本的 Rails/Cucumber 有不同的配置方式,并在这方面提供不同的功能,因此在不了解您的设置的情况下很难真正为您提供正确的解决方案。

不过有一些提示:

查看 cucumber-rails gem。它为您提供了许多好东西,例如生成器和 rake 任务,因此您可以运行 rake cucumber 而不是直接使用 cucumber。很多时候,生成器会构建一个需要 database_cleaner 的配置文件。

否则,将database_cleaner添加到您的依赖项列表中,并在您的测试套件代码中的某处放置require 'database_cleaner'

DatabaseCleaner is a library for 'cleaning' your db. Cucumber will use it between running features to ensure your db is in a testable state (ie. empty).

The idea is that you build up the proper data in your Given clauses for each test

This error just means that DatabaseCleaner hasn't been required properly.

Different versions of Rails/Cucumber have different ways of configuring everything and provide different functionality with this regard so it's hard to actually give you the right solution without knowing your setup.

A couple of tips though:

Look at the cucumber-rails gem. It gives you lots of nice stuff such as generators and also rake tasks so you can run rake cucumber instead of using cucumber directly. Often times the generators will build a config file that requires database_cleaner for you.

Otherwise, add database_cleaner to your list of dependencies and put a require 'database_cleaner' somewhere in your test suite code.

友谊不毕业 2024-11-03 18:32:05

我刚刚经历了这个问题。我将黄瓜宝石降级到版本 1.0.6,并收到此消息:

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

当我使用黄瓜 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

I just experienced the problem. I downgraded my cucumber gems to version 1.0.6, and I got this message:

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

when I use cucumber 1.0.6 (not the latest version) and database_cleaner v. 1.7.0. For fixing the error, I just run this command (on Rails 3.1.3):

rails g cucumber:install

It will prompt you to replace file features/support/env.rb. Just answer with Y and you can run rake cucumber:ok again.

情丝乱 2024-11-03 18:32:05

我正在使用 spring,并且 spring stop 为我工作

I am using spring, and spring stop work for me

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文