不能在Rails引擎中初始化工厂bot工厂



我有一个Rails 5.2引擎,我需要有一些系统(与水豚)测试运行在它上面。我也使用工厂,与factory_bot_rails宝石。

要运行测试,我需要使用命令rails test:app:system,因为标准rails test:system给出了一个错误,因为它是一个引擎。因此,系统测试是在虚拟应用程序的上下文中运行的。

在开始之前,它给出了一个错误的Factory xxxx not initialized,我想是因为所有的工厂都在test/factories,和虚拟应用程序是在test/dummy,不能加载它们。

如何对发动机进行系统测试?我认为我的选择是在引擎上下文中运行系统测试,或者将工厂加载到虚拟环境中…

是的,我相信您是对的,因为您需要在引擎上下文中运行测试套件。

我相信你需要:

# rails_helper.rb or spec_helper.rb
require 'factory_bot_rails'

如果事情仍然不稳定,应该能够添加确切的目录:

require 'factory_bot_rails'
FactoryBot.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
FactoryBot.find_definitions

这里解释https://www.hocnest.com/blog/testing-an-engine-with-rspec/

同时,确保在rails_helper.rb

中包含了config.include FactoryBot::Syntax::Methods

最新更新