【发布时间】:2011-07-22 23:10:27
【问题描述】:
配置: 使用 RSpec、Capybara、Selemium 驱动程序、SQLite 数据库对 Rails 项目进行集成测试。
情况: 我对 Capybara 和默认 rack_test 驱动程序的集成测试很少。他们直接在数据库中创建用户注册(用于 Devise gem)。然后他们像用户一样使用 Capybara DSL 登录并测试场景。
问题: 我也尝试将驱动程序更改为 Selenium 以测试 JavaScript 代码。现在测试失败了,因为应用程序看不到测试创建的用户注册。
调查: 看起来 Selenium 驱动程序与事务的工作方式不同,因此在测试中所做的更改在 Web 应用程序中是不可见的。可能的解决方案包括:
config.use_transactional_fixtures = false
DatabaseCleaner.strategy = :truncation
【问题讨论】:
标签: ruby-on-rails database transactions selenium capybara