问题标签 [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 投票
0 回答
232 浏览

ruby-on-rails - 由于表格被截断,规范运行时间很长

我有一个具有简单规格的 Rails 4 应用程序。当我运行一个规范时,它需要 26 秒。如果我查看日志,我可以看到:

如您所见,截断需要 10 秒 2 次。

我使用数据库清理器:

我用其他策略进行了测试,但没有结果。

开发模式中有很多种子,但它在另一个数据库上。该项目有107个模型。

有解决办法吗?

0 投票
1 回答
23 浏览

ruby-on-rails - DatabaseCleaner 是否可以不重置给定的表?

Database Cleaner 是否支持重置除给定表之外的所有表的方法?

0 投票
1 回答
51 浏览

ruby-on-rails - 如何让 database_cleaner 和 factorygirl 始终存在 1 个数据集

我们有一个多域应用程序,其中每个站点可以有多个域(对于语言环境)

ApplicationController 正在做


在我的测试套件中,我只想确保该网站正在显示

规范/功能/user_visits_homepage_spec.rb


我的 database_cleaner.rb


问题

我如何确保我始终拥有 1 个站点,因为没有站点,控制器将无法工作。

当我像我一样创建站点时,database_cleaner 总是会杀死它。

我有错误的理解还是我错过了什么?

0 投票
1 回答
3072 浏览

ruby-on-rails - Rspec 和 database_cleaner 只删除测试添加的数据

我希望能够始终访问我的测试数据库中的种子数据。我知道如果以这种方式设置,database_cleaner 将删除所有内容。

我尝试删除所有内容,然后重新加载种子,但是当我尝试在测试中使用 js: true 时,种子永远不会被加载,所以我收到错误消息说数据不存在。

我的 spec_helper.rb

当在我的 view_spec 我有这样的东西

前两个测试将运行并且可以创建该用户,但是一旦它使用 js: true 命中最后一个测试,它就不再具有数据库中的权限。

有没有办法告诉 database_cleaner 只删除 rspec 添加的数据?而不是种子?或者甚至可能告诉它不要删除某些表?

任何帮助,将不胜感激。

0 投票
1 回答
262 浏览

sql-server-2008 - 在 rSpec 测试和使用 activerecord-sqlserver-adapter 时使用 rails gem database_cleaner

我正在使用activerecord-sqlserver-adapter gem 连接到我的 rails 应用程序中的 2008 SQL Server 数据库。请注意,我确实使用“建立连接”连接到整个应用程序中的多个数据库。我使用 rSpec 来测试我的应用程序,并且我想从 rSpec 创建的数据库中删除条目。我四处搜索,发现database_cleaner gem 可以解决我的问题,所以我包含了 Gem 并设置了我的 railsappname/spec/spec_helper.rb,如下所示:

我还将以下行更新为错误

到我的 rails_helper.rb RSpec.configure 块,因为那是该行最初的位置。

我也尝试将我的策略更改为 :truncation ,但这并没有产生什么影响。测试完成后,数据仍在插入数据库中,不会被删除。这是对 activerecord-sqlserver-adapter 的限制吗?是否有解决方法?这个问题是由于我在我的应用程序中连接到多个数据库而引起的吗?我已经用谷歌搜索了一段时间,没有看到其他人遇到同样的问题,所以非常感谢任何建议!

0 投票
1 回答
235 浏览

rspec - 为什么 Avdi Grimm 的 database_cleaner 示例现在在 rails 4.2.4 中不再有效?

我不太确定确切的问题是什么,但是 Avdi Grimm 建议的 database_cleaner 使用示例现在似乎不再适用,而是 database_cleaner README 中显示的示例有效。这两个示例都已将事务性固定装置设置为 false。

以下是来自 Avdi Grimm博客的示例:

以下是 database_cleaner README中显示的工作示例:

唯一不同的是截断策略设置。

0 投票
1 回答
990 浏览

ruby - 使用续集和数据库清理器的外键约束问题

我在使用带有sequel和 sqlite 外键约束的数据库清理器时遇到了问题。具体来说,我正在使用Capybara 集成测试的策略。:truncation

对于给定的示例架构:

和续集模型:

运行以下:

导致错误

我可以通过更改我的 before 语句来禁用 foreign_keys PRAGMA 来解决这个问题:

(或者不在我的表中使用 FOREIGN KEY),但这似乎是错误的,因为我想要外键约束的好处 - 或者至少我认为我这样做;)。

这是对如何使用外键约束的根本误解,还是有更好的方法来做到这一点?

0 投票
1 回答
817 浏览

ruby-on-rails - 如何使用 rake 任务和数据库清理器 gem 在 ruby​​ on rails 中填充和清理数据库?

我在一个文件中有两个 rake 任务。播种和填充。种子正在创建必要的数据,而填充正在为我的测试填充样本数据。

在我的测试中,我正在操作一个数据库(添加新条目、删除它等等)。我正在使用数据库清洁器 gem 来重置数据库但是当我重置数据库时,我需要为下一次测试填充数据。我有以下设置但它不工作数据库仍然是空的并且填充数据不存在。

这是规范/支持/database_cleaner.rb

规范/rails_helper.rb

0 投票
1 回答
394 浏览

ruby-on-rails - Database Cleaner unable to detect ORM in Rails application

The error below is displayed when $ rspec is executed:

No known ORM was detected! Is ActiveRecord, DataMapper, Sequel, MongoMapper, Mongoid, Moped, or CouchPotato, Redis or Ohm loaded? (DatabaseCleaner::NoORMDetected)

This is a snippet from the spec_helper.rb file:

The Rails application in question uses ActiveRecord as the ORM and the documentation for Database Cleaner states that it checks for ActiveRecord first.

The Rails version for the application is 5.0.0.beta2.

What is the cause of the error and how can this be fixed?

0 投票
1 回答
580 浏览

ruby-on-rails - Capybara 在访问一页后没有保持用户会话——Rails 4.2

我无法让 Capybara 在一个规范中进行超过一页访问的会话。我熟悉 Capybara 的驱动程序可能使用不同的数据库连接的概念,但我所做的任何事情(包括不使用 :js => true)似乎都没有改变任何东西。

我只是想访问一个需要用户身份验证的页面。它在第一次访问时成功。当我第二次访问它时它失败了。(当然,当我在开发中手动测试时,这一切都有效。)代码:

activity_areas_spec.rb

由于我对 Capy 可能使用不同的数据库连接这一事实很敏感,因此我尝试按照 DatabaseCleaner 对 tee 的建议代码来代替上述 DatabaseCleaner 命令:

看这里。

我很容易感到困惑,非常感谢以简单的术语提供的任何帮助。如果您需要任何其他文件,请告诉我。