如何解决在将夹具加载到 Rails 测试环境之前创建一个表
表的数据库架构之一指定其在列上的分区。 由于在测试开始之前加载设备,因此 INSERT 语句失败,因为分区表不存在。 我试过
class ActiveSupport::TestCase
self.use_transactional_tests = false
fixtures :fixture_file
setup :setup
def setup
ActiveRecord::Base.connection.execute("CREATE TABLE table_1 PARTITION OF table ..")
end
这似乎失败了,因为在调用 setup 之前已经加载了装置。 有没有办法在加载设备之前调用 setup ?
解决方法
我不知道可以有选择地将夹具加载到测试类中。 test_helper.rb
class ActiveSupport::TestCase
fixtures :A,:B
end
而在测试类中,我想首先创建一个分区表然后加载夹具,我尝试了
class ApiTest < ActionDispatch::IntegrationTest
def setup
ActiveRecord::Base.connection.execute("CREATE TABLE IF NOT EXISTS table_1 PARTITION OF table FOR VALUES IN (1)")
ActiveRecord::FixtureSet.create_fixtures(Rails.root.join('test','fixtures'),'table_fixture_file')
end
def teardown
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS table_1")
end
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。