问题标签 [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.
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?
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 之间的任何变化,这些变化已经发生了变化并且可能已经开始导致这些问题吗?
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?
ruby-on-rails - Rails Rspec Capybara 和 DatabaseCleaner - 仅在功能测试中使用截断
我看到这个很酷的方法只使用数据库清理器:截断水豚测试使用:js => true
在 spec_helper.rb 中:
问题是使用 capybara 完成的任何功能测试似乎都需要清理策略为 :truncation。
但是,所有其他规范都可以使用 :transaction,这要快得多。
有没有一种方法可以指定仅针对 capybara 功能测试的策略?就像是:
cucumber - DatabaseCleaner 策略事务不起作用
在我的 env.rb 中
还在我的 shared_steps.rb 中创建了一个钩子
在我的功能文件中
我正在使用宝石:
在我的 database.rb 中
DatabaseCleaner.strategy = :trancation 工作正常(从数据库中删除所有记录)但 DatabaseCleaner.strategy = :transaction 没有回滚我的数据库记录,为什么?我错过了什么吗?
ruby-on-rails - Rails database_cleaner 擦除整个数据库
我正在尝试使用database_cleaner gem 来清理我的规格。我的 spec_helper.rb 中有以下简单配置:
虽然运行规范,但我注意到在执行 DatabaseCleaner.clean 后我的数据库被完全清除了。我确定这只是为了清理测试的影响......有什么可能导致这种行为的想法吗?
ruby-on-rails - Rspec极慢
即使使用 guard 和 spork,我的 rspec 测试似乎也运行得非常缓慢。
我知道我可以做几件事来优化我的测试并减少与数据库的交互,但我强烈怀疑 spec_helper 的设置不正确。我在使用 mongoid 的 Rails 3.2.11 上。每次运行后都会清理数据库清理器。
更新:问题出在我的一项测试上。花了3秒钟。请检查@Sam Peacey 对我用来获得以下结果的命令的回答
javascript - 配置 Turnip 和 Database_cleaner
我正在使用Turnip和 Ruby on Rails。我有使用和不使用 javascript 的场景。我想对transaction
非 JavaScript 场景使用 DatabaseCleaner 策略,对truncation
标记为 等的场景@javascript
使用策略@selenium
。
我正在为Rspec 功能使用以下解决方案
但它在萝卜的情况下不起作用。使它按我预期工作的最佳方法是什么?或者换句话说,如何指定由@javascript
(或@selenium
等)标签标记的萝卜场景config.before
?
ruby - 数据库清理器在 minitest rails 中不起作用
如果我单独运行它们,我的 Minitest 控制器测试工作正常,rake minitest:controllers
但是当我运行时,rake minitest:all
我得到验证失败错误。这是因为电子邮件已经在模型测试中使用。我使用 DatabaseCleaner 清理数据库但无法清理数据库。
我的数据库清理器代码:
ruby-on-rails - 没有数据库清理或空数据库
我无法让我的测试套件工作。我尝试混合和匹配不同的配置。但是这个视图的结果都是一样的:要么在测试之间没有清理任何东西,要么数据库是空的。
我收到这种错误:
当什么都没有清理
或者这个,一个空的数据库:
我尝试过使用和不使用 database_cleaner。我尝试过不使用 Spork。我尝试了不同来源的不同配置,例如:
https://github.com/bmabey/database_cleaner#rspec-example
但我不知道如何使它工作。
这是 Gemfile,带有 gems 版本:
这是视图:
两种型号:
以及相应的规范
这是我的 spec_helper.rb
这有什么建议吗?