gpt4 book ai didi

ruby-on-rails-3 - rspec 测试单独通过,但与其他测试一起运行时失败

转载 作者:行者123 更新时间:2023-12-03 15:17:47 25 4
gpt4 key购买 nike

我有一些用 RSpec 编写的规范,用于测试各种模型。我使用 Factory Girl 生成用于测试的对象。

现在最奇怪的事情发生了:
当我运行时 rspec spec/models/specific_model_spec.rb --- 这通过了该规范中的所有测试

但是,当我运行 rspec spec/models 时--- 本规范中的每个测试都失败了(通过工厂)创建的无效关联

工厂创建的关联显然是有效的,隔离运行测试也表明。

什么可能导致这种行为?

更新:
将规范与其他规范一起运行时出现的错误(每次失败的错误都相同):

6) StreamItem adds a stream_item to a project and consultant when an engagement is added 
Failure/Error: @project = Factory.create(:project, :name => 'bar' )
Validation failed: Customer is invalid
# ./spec/models/stream_item_spec.rb:44:in `block (2 levels) in <top (required)>'
project factory在另一个规范中进行了测试并通过了很好的...

更新 2:
使用的相关工厂代码如下:
Factory.define :manager, :class => User do |f|
f.sequence(:email) { |n| "bar#{n}@example.com" }
f.password "pass12"
f.sequence(:name) { |n| "Erwin#{n}" }
f.roles_mask 4
end

Factory.define :customer do |f|
f.sequence(:name) { |n| "foo customer#{n}" }
f.association :last_actor, :factory => :manager
f.account_id 1
end

Factory.define :project do |f|
f.sequence(:name) { |n| "foo project#{n}" }
f.association :manager, :factory => :manager
f.association :customer, :factory => :customer
f.start_date Date.today << 1
f.finish_date Date.today >> 2
f.status 1
f.association :last_actor, :factory => :manager
f.account_id 1
end

最佳答案

RSpec 现在有一个 "bisect" feature专为查找此类问题而设计。

运行导致失败的 RSpec 命令 --bisect标志,RSpec 将自动识别导致该故障的规范组合。

rspec spec/models --bisect

关于ruby-on-rails-3 - rspec 测试单独通过,但与其他测试一起运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com