问题标签 [database-cleaner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
198 浏览

database - When using cucumber and databasecleaner can I keep a single entry in a table?

I am currently using cucumber and databasecleaner to test my application. And currently in my env.rb i have the setup of the cleaner as:

This way I can keep the data in TABLE. But I would also like to keep a single entry in a different table between tests. Is there any way I can achieve that or do I have to recreate it all the time with a Before hook?

0 投票
3 回答
1416 浏览

ruby-on-rails - 将 capybara 从 1.0.1 升级到 1.1.4 使 database_cleaner 打破了我的规范

我有一个升级到版本 3.2.11 的旧 Rails 应用程序,其中有很多使用 capybara 版本 1.0.1 编写并使用 selenium 驱动程序运行的请求规范。每次测试后,使用截断策略使用 database_cleaner 清理数据库。

我想使用 poltergeist 而不是 selenium,并将 capybara 从 1.0.1 升级到 1.1.4 以便能够使用最新版本的 poltergeist。仅更改 capybara gem(及其依赖项)会引入运行我的规范的问题。

在每个规范之后,我总是在清理处理程序中从我的 Postgresql 数据库中得到死锁错误。我的 spec_helper 非常基本,看起来像这样:

我得到的错误是这样的:

我使用 FactoryGirl 创建测试数据,但没有什么特别的 IMO。

我无法弄清楚由 database_cleaner 创建的死锁的另一端是什么。任何解决这个问题的想法都是最受欢迎的。

有人知道 capybara 1.0.1 和 1.1.4 之间的任何变化,这些变化已经发生了变化并且可能已经开始导致这些问题吗?

0 投票
1 回答
1391 浏览

ruby-on-rails - database_cleaner without database.yml and multiple databases

I have a cucumber-tests of non-rails application.

I do not have database.yml in my project, and for some reasons dont want to have it (connection setting are stored in a bit different format).

I have several database models, defined like

Now to clean that databases i'm trying to use the following code. I do not have database.yml so i'm just passing models.

But it cleans only database connected by ActiveRecord::Base, not DatabaseA & DatabaseB What is wrong?

0 投票
1 回答
1460 浏览

ruby-on-rails - Rails Rspec Capybara 和 DatabaseCleaner - 仅在功能测试中使用截断

我看到这个很酷的方法只使用数据库清理器:截断水豚测试使用:js => true

在 spec_helper.rb 中:

问题是使用 capybara 完成的任何功能测试似乎都需要清理策略为 :truncation。

但是,所有其他规范都可以使用 :transaction,这要快得多。

有没有一种方法可以指定仅针对 capybara 功能测试的策略?就像是:

0 投票
0 回答
440 浏览

cucumber - DatabaseCleaner 策略事务不起作用

在我的 env.rb 中

还在我的 shared_steps.rb 中创建了一个钩子

在我的功能文件中

我正在使用宝石:

在我的 database.rb 中

DatabaseCleaner.strategy = :trancation 工作正常(从数据库中删除所有记录)但 DatabaseCleaner.strategy = :transaction 没有回滚我的数据库记录,为什么?我错过了什么吗?

0 投票
1 回答
309 浏览

ruby-on-rails - Rails database_cleaner 擦除整个数据库

我正在尝试使用database_cleaner gem 来清理我的规格。我的 spec_helper.rb 中有以下简单配置:

虽然运行规范,但我注意到在执行 DatabaseCleaner.clean 后我的数据库被完全清除了。我确定这只是为了清理测试的影响......有什么可能导致这种行为的想法吗?

0 投票
2 回答
7443 浏览

ruby-on-rails - Rspec极慢

即使使用 guard 和 spork,我的 rspec 测试似乎也运行得非常缓慢。

我知道我可以做几件事来优化我的测试并减少与数据库的交互,但我强烈怀疑 spec_helper 的设置不正确。我在使用 mongoid 的 Rails 3.2.11 上。每次运行后都会清理数据库清理器。

更新:问题出在我的一项测试上。花了3秒钟。请检查@Sam Peacey 对我用来获得以下结果的命令的回答

0 投票
1 回答
630 浏览

javascript - 配置 Turnip 和 Database_cleaner

我正在使用Turnip和 Ruby on Rails。我有使用和不使用 javascript 的场景。我想对transaction非 JavaScript 场景使用 DatabaseCleaner 策略,对truncation标记为 等的场景@javascript使用策略@selenium

我正在为Rspec 功能使用以下解决方案

但它在萝卜的情况下不起作用。使它按我预期工作的最佳方法是什么?或者换句话说,如何指定由@javascript(或@selenium等)标签标记的萝卜场景config.before

0 投票
5 回答
5873 浏览

ruby - 数据库清理器在 minitest rails 中不起作用

如果我单独运行它们,我的 Minitest 控制器测试工作正常,rake minitest:controllers但是当我运行时,rake minitest:all我得到验证失败错误。这是因为电子邮件已经在模型测试中使用。我使用 DatabaseCleaner 清理数据库但无法清理数据库。

我的数据库清理器代码:

0 投票
1 回答
331 浏览

ruby-on-rails - 没有数据库清理或空数据库

我无法让我的测试套件工作。我尝试混合和匹配不同的配置。但是这个视图的结果都是一样的:要么在测试之间没有清理任何东西,要么数据库是空的。

我收到这种错误:

当什么都没有清理

或者这个,一个空的数据库:

我尝试过使用和不使用 database_cleaner。我尝试过不使用 Spork。我尝试了不同来源的不同配置,例如:

http://devblog.avdi.org/2012/08/31/configuring-database_cleaner-with-rails-rspec-capybara-and-selenium/

https://github.com/bmabey/database_cleaner#rspec-example

但我不知道如何使它工作。

这是 Gemfile,带有 gems 版本:

这是视图:

两种型号:

以及相应的规范

这是我的 spec_helper.rb

这有什么建议吗?