gpt4 book ai didi

ruby-on-rails - rspec 不报告错误的行号

转载 作者:行者123 更新时间:2023-12-02 01:22:52 28 4
gpt4 key购买 nike

对于我的几乎所有规范,当 rspec 报告错误时,它会通知我路径末尾的行号,例如

rspec ./spec/controllers/eclubs_controller_spec.rb:21

但是,在我的一项规范中,它报告了这样的错误位置
rspec ./spec/controllers/eclubs/members_controller_spec.rb[1:1:2:3:1]

这在块的嵌套方面可能有意义,但坦率地说是相当神秘的。

规范的顶部看起来像这样
require 'rails_helper'
describe EclubsController do

那个不起作用的看起来像这样
require 'rails_helper'
describe Eclubs::MembersController do

我在这两个文件中看到的唯一区别是一个 Controller 是命名空间的,但我有其他命名空间的 Controller 可以正确报告错误行。

这是什么原因造成的?

最佳答案

当行号不够唯一以识别有问题的示例时,RSpec 使用示例 ID。

这可能发生在动态定义示例时,例如在循环中:

(0..10).each do |i|
it do
expect(i).to_not eq(5)
end
end
# rspec './my_spec.rb[1:6]'

或者在使用共享示例组时:
RSpec.shared_examples_for "not equal 5" do |i|
it do
expect(i).to_not eq(5)
end
end

RSpec.describe do
it_behaves_like "not equal 5", 5
it_behaves_like "not equal 5", 4
end
# rspec './my_spec.rb[2:1:1]'

关于ruby-on-rails - rspec 不报告错误的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38884565/

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