为什么不在远程应用程序使用的数据库中反映的规范内进行更改?

问题描述 投票:0回答:1

我正在使用Capybara和RSpec编写功能测试,其中应用程序是远程的(即不是由Capybara启动)。测试和应用程序共享相同的数据库。所以我假设测试对数据库所做的任何更改也可用于远程应用程序。

但是当我使用Selenium用我在测试步骤中创建的记录中的数据填充表单时,我得到“没有这样的记录”错误。

我的RSpec配置包括以下行:

RSpec.configure do |c|
  c.use_transactional_fixtures = false
end

我认为这将允许数据可用于Selenium。但那不是正在发生的事情。

我的Capybara配置是:

Capybara.javascript_driver = :headless_chrome
Capybara.app_host = 'http://selenium:5000'
Capybara.run_server = false

测试和被测试的应用程序在DATABASE_URL=postgres://postgres@db:5432/test_db使用相同的数据库。

谁能帮我吗?

ruby-on-rails selenium-webdriver capybara rspec-rails
1个回答
0
投票

弄清楚DatabaseCleaner正在添加事务块。

DatabaseCleaner.strategy = :transaction
© www.soinside.com 2019 - 2024. All rights reserved.