ruby-on-rails - 如何在测试运行期间将 Rails 固定装置重新加载到数据库中
问题描述
我的旧代码正在使用 DatabaseCleaner,它会在每次测试完成后清除数据库。然而,它也会清除加载的夹具数据并导致一些使用夹具失败的测试,例如:
ActiveRecord::RecordNotFound Exception: Couldn't find Country with 'id'=593363170
为了使它们一起工作,我如何在测试期间将所有夹具重写回数据库?(我的意思是不耙任务)
解决方案
解决方案:
设置self.use_transactional_fixtures = false
在要重新加载固定装置之前的文件的开头。
或者use_transactional_tests
在 Rails 5 中使用。
不要设置它,spec_helper
因为它适用于全局,因此与 DatabaseCleaner 冲突。
推荐阅读
- javascript - 清除高度疑虑:auto css 属性
- c++ - 尝试删除()时权限被拒绝
- sql - 如何计算SQL中给定两个表的ID对应的行数?
- javascript - 无法在反应中调整 svg 的大小
- java - 从外部 jar 文件中获取 spring boot 计划的 cron 表达式
- oracle - 对具有相同 ID 的多行中的 2 列求和
- next.js - Next.js 动态页面不更新
- ios - React Native v0.61.5 获取 ITMS-90809:已弃用的 API 使用
- r - 日期轴上的点大小的线图 - R
- python - 如果在模拟中接收到消息,如何检查 CAPL?