RSpec 3 中等待或跳过的替代方法
Alternatives to pending or skip in RSpec 3
有些测试有时会通过,有时会失败。我想修复它们,但由于超出此问题范围的原因,我目前无法修复。在 RSpec 3 中是否有替代 pending
或 skip
的方法?
pending
不合适,因为从 RSpec 的当前版本开始,当测试通过时,RSpec 会告诉我他们通过了,因此不应该标记为待处理,并将构建标记为损坏。
skip
不合适。我只使用 skip
来避免导致套件崩溃的规范。如果测试始终停止失败,我想知道情况就是这样。
我想要运行测试的东西,显示它是否通过,但无论通过还是失败都不会导致构建中断。
添加此行为的额外 gem 是可以的。
没有内置任何东西,但自己做起来很简单:
module AllowFailure
def allow_failure(reason)
yield
rescue Exception => e
pending(reason)
raise
end
end
RSpec.configure do |config|
config.include AllowFailure
end
然后用allow_failure(reason) { ... }
包裹闪烁测试的主体。
(注意:上面的代码是现成的,我还没有尝试过,所以它可能不完全正确——但应该很接近)。
有些测试有时会通过,有时会失败。我想修复它们,但由于超出此问题范围的原因,我目前无法修复。在 RSpec 3 中是否有替代 pending
或 skip
的方法?
pending
不合适,因为从 RSpec 的当前版本开始,当测试通过时,RSpec 会告诉我他们通过了,因此不应该标记为待处理,并将构建标记为损坏。
skip
不合适。我只使用 skip
来避免导致套件崩溃的规范。如果测试始终停止失败,我想知道情况就是这样。
我想要运行测试的东西,显示它是否通过,但无论通过还是失败都不会导致构建中断。
添加此行为的额外 gem 是可以的。
没有内置任何东西,但自己做起来很简单:
module AllowFailure
def allow_failure(reason)
yield
rescue Exception => e
pending(reason)
raise
end
end
RSpec.configure do |config|
config.include AllowFailure
end
然后用allow_failure(reason) { ... }
包裹闪烁测试的主体。
(注意:上面的代码是现成的,我还没有尝试过,所以它可能不完全正确——但应该很接近)。