如何解决如何清理测试数据库,但不是完全清理,只清理 RSPEC 和 Capybara 测试生成的数据
我在 rails 5.2.6 中有一个应用程序,我正在使用 RSPEC 和 Capybara 对其进行测试,为此我有一个包含用于执行测试的数据的测试数据库,并且我正在运行一些生成数据的测试存储在这个数据库中。我需要的是,在运行测试后,这些数据不会存储在其中。
我使用了 gem database_cleaner 但这会清除测试数据库的所有数据,我只想删除测试生成的数据。
我的database.yml的一部分:
development:
<<: *default
database: f_development
host: localhost
port: 5432
username: postgres
password: postgres
test:
<<: *default
database: f_test
host: localhost
port: 5432
username: postgres
password: postgres
解决方法
检查您的 spec/rails_helper.rb 配置部分。 看起来你已经设置了
config.use_transactional_fixtures = false
不在事务中执行每个测试以便数据保留在数据库中意味着什么。
此设置的默认行为为 true。
您可以阅读它的工作原理here
另一种可以帮助您的解决方案:您可以在运行测试之前设置种子数据,如所述here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。