gpt4 book ai didi

ruby-on-rails - Ruby on Rails : Cucumber: how do I turn off the database cleaner?

转载 作者:行者123 更新时间:2023-12-04 07:38:49 26 4
gpt4 key购买 nike

我正在测试的系统足够复杂,编写单独的测试用例会浪费大量时间和资源。所以,我需要我的测试相互建立。

但是,例如,每当我在我的步骤定义之一中获得 User.new 时,一旦场景完成,用户就会从数据库中删除。

我如何保留我的所有信息...除非我强制执行 db:test:prepare?

这是我的 env.rb:

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')

require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
require 'cucumber/rails/world'
require 'cucumber/rails/active_record'
require 'cucumber/web/tableish'
require 'cucumber/rails/rspec'
require 'rake'



require 'capybara/rails'
require 'capybara/cucumber'
require 'capybara/session'
require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
require 'database_cleaner'
require 'database_cleaner/cucumber'
DatabaseCleaner.strategy = :transaction

@subscription_plan = Factory(:subscription_plan)
@subscription_plan.save!

Capybara.default_selector = :css
Capybara.default_wait_time = 2
Capybara.javascript_driver = :culerity
Capybara.current_driver = :culerity
Capybara.default_host = "cucumber.test.com" #for Rack::Test
Capybara.app_host = "cucumber.test.com" #if Capybara.current_driver == :culerity

Cucumber::Rails::World.use_transactional_fixtures = false

最佳答案

让您的测试相互建立是一个糟糕的主意,因为这意味着每个测试都不能独立存在,并使您的测试处于泄漏状态(这会产生大量错误的测试结果)。如果您的测试无法从头开始,请使它们更具原子性。

从目前的情况来看,从您的描述来看,您并没有真正正确地测试您的系统。

关于ruby-on-rails - Ruby on Rails : Cucumber: how do I turn off the database cleaner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com