database - Rails 测试数据库中的持久表

标签 database ruby-on-rails-3 testing cucumber

我有几个表:citiesprovinces在开发和测试中,我已经从一个 sql 文件直接填充到数据库,而没有在 Ruby 中使用迁移或种子文件。直接 SQL。

每次使用 Selenium 运行测试时,数据库都会被删除,因此我需要运行 mysql (...) database_test < fill_cities_provinces.sql

我该如何解决这个问题?我可以让两个表在测试中不可删除吗?

我注意到如果场景标记为 @javascript 就会发生这种情况.否则,如果它使用默认驱动程序,则该表的内容不会被删除。

最佳答案

我假设您使用的是 DatabaseCleaner在测试期间清理数据库。以下策略应该有所帮助

DatabaseCleaner.strategy = :truncation, {:except => %w[cities provinces]}

关于database - Rails 测试数据库中的持久表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11838440/

相关文章:

testing - 我如何生成一个包含功能配置和所有测试设置的脚本,以避免在每个类中编写设置方法

selenium - 如何自动化Java applet?

linux - 如何恢复损坏的 dnf 数据库?

django - 有没有一种简单的方法可以将 Django 的模型和迁移链与数据库验证一致性进行比较?

ruby-on-rails-3 - 使用 jquery tokeninput 和 acts_as_taggable_on

angularjs - Protractor browser.get() 在 IE11 中抛出异常

sql - auto_increment 外键 (postgresql)

sql - SELECT 语句中列的顺序是否有所不同?

ruby-on-rails - Rails url_for 和命名空间模型

ruby-on-rails - 寻找更快的 ActiveRecord 查询 (Ruby on Rails)