Ruby on rails 如何立即与警卫和工厂女工一起清理工厂?
每次我更换工厂时,我需要在Guardfile(在带有RSpec和FactoryGirl的Rails应用程序中)中放入什么来清除我所有的工厂 我知道,根据这个问题,可以运行所有模型规范,但我只想将它们全部删除 我试图在Guardfile中这样做,但这还不够:Ruby on rails 如何立即与警卫和工厂女工一起清理工厂?,ruby-on-rails,rspec,factory-bot,guard,Ruby On Rails,Rspec,Factory Bot,Guard,每次我更换工厂时,我需要在Guardfile(在带有RSpec和FactoryGirl的Rails应用程序中)中放入什么来清除我所有的工厂 我知道,根据这个问题,可以运行所有模型规范,但我只想将它们全部删除 我试图在Guardfile中这样做,但这还不够: watch(%r{^spec/factories/(.+)\.rb$}) { FactoryGirl.lint } 提前谢谢。你想做什么很清楚,但那样不行 Guard不在应用程序的“内部”运行。它将RSpec作为一个进程运行。调用Fac
watch(%r{^spec/factories/(.+)\.rb$}) {
FactoryGirl.lint
}
提前谢谢。你想做什么很清楚,但那样不行 Guard不在应用程序的“内部”运行。它将RSpec作为一个进程运行。调用
FactoryGirl.lint
是在Guard中调用的,而不是在RSpec进程中调用的(这是您想要的)
这里的“诀窍”是创建一个“假”规范文件,该文件除了线纹之外什么都不做,因此您可以执行以下操作:
guard :rspec do
watch(%r{^spec/factories/(.+)\.rb$}) { 'spec/linting_spec.rb' }
end
下面是它的工作原理:
RSpec spec/linting\u spec.rb
rspec spec/linting_spec.rb
按照您的意愿工作,您就可以像上面那样将其“插入”到防护装置中
spec/linting_spec.rb
可以对模型进行一次“假”RSpec测试-足以触发linting
这样,您就只需使用linting,而无需运行任何模型测试。我直接输入
linting\u spec.rb
代码来对其进行lint(FactoryGirl.lint
)。非常感谢。