Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否可以在其他RSpec测试之前运行一个RSpec测试?_Ruby On Rails_Ruby_Rspec_Factory Bot - Fatal编程技术网

Ruby on rails 是否可以在其他RSpec测试之前运行一个RSpec测试?

Ruby on rails 是否可以在其他RSpec测试之前运行一个RSpec测试?,ruby-on-rails,ruby,rspec,factory-bot,Ruby On Rails,Ruby,Rspec,Factory Bot,我在测试中使用factory\u bot,希望在运行任何测试之前验证所有工厂。我为这种验证编写了一个测试,并希望它首先运行——这在RSpec中可行吗 是的,这是可行的,请参阅以下帖子:。方法是创建一个factories\u spec,然后将其作为先决条件添加到rake文件中 (1) 创建工厂等级库文件: # spec/factories_spec.rb FactoryBot.factories.map(&:name).each do |factory_name| descr

我在测试中使用
factory\u bot
,希望在运行任何测试之前验证所有工厂。我为这种验证编写了一个测试,并希望它首先运行——这在RSpec中可行吗

是的,这是可行的,请参阅以下帖子:。方法是创建一个
factories\u spec
,然后将其作为先决条件添加到
rake文件中

(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) 要在rake规范中添加先决条件,请执行以下操作:

# 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

是的,这是可行的,请参阅此帖子:。方法是创建一个
factories\u spec
,然后将其作为先决条件添加到
rake文件中

(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) 要在rake规范中添加先决条件,请执行以下操作:

# 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

非常感谢。我以前确实看过这篇文章,但我不想仅仅因为一次测试就使用
rakespec
而不是
rspec
。你认为这里有解决办法让我可以继续使用
rspec
?我不知道,对不起。谢谢。我以前确实看过这篇文章,但我不想仅仅因为一次测试就使用
rakespec
而不是
rspec
。您是否认为这里有一个解决方法,以便我可以继续使用
rspec
?对不起,我没有发现任何问题。为什么您希望先运行此测试?只需使用
focus:true
,直到测试通过,然后运行整个套件。因为如果工厂测试失败,我的套件几乎也将不可避免地失败。我想从一开始就知道这一点,并节省宝贵的时间。为什么要先运行此测试?只需使用
focus:true
,直到测试通过,然后运行整个套件。因为如果工厂测试失败,我的套件几乎也将不可避免地失败。我想从一开始就知道这一点,节省宝贵的时间。