有些测试有时会通过,有时会失败。我想修复它们,但由于超出此问题范围的原因,我现在无法解决这些问题。 RSpec 3中是否有pending
或skip
的替代品?
pending
不合适,因为从当前版本的RSpec开始,当测试通过时,RSpec会告诉我他们已经通过,因此不应该被标记为待定,并且将构建标记为已损坏。
skip
不合适。我只使用skip
来避免导致套件崩溃的规范。如果测试一直停止失败,我想知道情况就是这样。
我喜欢运行测试的东西,显示它是否通过,但是无论是否通过,都不会导致构建被破坏。
添加此行为的其他gem是可以的。
答案 0 :(得分:2)
没有内置任何东西,但自己这样做是微不足道的:
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) { ... }
包裹闪烁测试的主体。
(警告:上面的代码是袖手旁观的,我没有尝试过,所以它可能不完全正确 - 但它应该很接近)。