是否可以先 运行 一个 RSpec 测试?
Is it possible to run one RSpec test before the others?
我在测试中使用 factory_bot
,并希望在任何测试 运行 之前验证所有工厂。我为这种验证编写了一个测试,并希望它首先 运行 - 这在 RSpec 中可行吗?
是可行的,看这个post:https://thoughtbot.com/blog/testing-your-factories-first。方法是创建一个 factories_spec
,然后将其作为先决条件添加到 rake file
.
(1) 创建工厂规范文件:
# spec/factories_spec.rb
FactoryBot.factories.map(&:name).each do |factory_name|
describe "The #{factory_name} factory" do
it 'is valid' do
expect(build(factory_name)).to be_valid
end
end
end
(2) 要为您的佣金规范添加先决条件:
# Rakefile
if defined?(RSpec)
desc 'Run factory specs.'
RSpec::Core::RakeTask.new(:factory_specs) do |t|
t.pattern = './spec/factories_spec.rb'
end
end
task spec: :factory_specs
(3) 运行 你的测试
rake spec
我在测试中使用 factory_bot
,并希望在任何测试 运行 之前验证所有工厂。我为这种验证编写了一个测试,并希望它首先 运行 - 这在 RSpec 中可行吗?
是可行的,看这个post:https://thoughtbot.com/blog/testing-your-factories-first。方法是创建一个 factories_spec
,然后将其作为先决条件添加到 rake file
.
(1) 创建工厂规范文件:
# spec/factories_spec.rb
FactoryBot.factories.map(&:name).each do |factory_name|
describe "The #{factory_name} factory" do
it 'is valid' do
expect(build(factory_name)).to be_valid
end
end
end
(2) 要为您的佣金规范添加先决条件:
# Rakefile
if defined?(RSpec)
desc 'Run factory specs.'
RSpec::Core::RakeTask.new(:factory_specs) do |t|
t.pattern = './spec/factories_spec.rb'
end
end
task spec: :factory_specs
(3) 运行 你的测试
rake spec