我的问题:
我正在使用的内容:
到目前为止我做了什么:
Devise.stretches = 1
和Rails.logger.level = 4
配置,测试时间在5-10秒内减少。self.use_transactional_fixtures = false
),但显然这不会改变事情。我需要重置"我的灯具"在测试套件之前,不幸的是导轨固定装置取决于它们,当我试图删除我的数据时,我遇到了一些错误。试图放弃我的灯具"在使用此代码创建rails fixture之前:
class ActiveRecord::FixtureSet
class << self
alias :orig_create_fixtures :create_fixtures
end
def self.create_fixtures f_dir, fs_names, *args
reset_cache
#Deleting my fixture data
People.delete_all
orig_create_fixtures f_dir, fs_names, *args
end
end
上述代码的问题是delete_all
正在每次测试中执行。
除了错误之外,我得到了所有这些装置,我将测试时间减少到大约8秒。
我的测试助手:
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require "rails/test_help"
require 'minitest/autorun'
require 'minitest/reporters'
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
# Load support files
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
ActiveSupport::TestCase.class_eval do
extend MiniTest::Spec::DSL
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
fixtures :all
self.use_transactional_fixtures = false
Devise.stretches = 1
Rails.logger.level = 4
reporter_options = {color: true, slow_count: 5}
Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(reporter_options)]
end
我能做得更好吗?有关删除数据解决此问题的任何线索?有什么办法可以提高我的测试性能吗?