【问题标题】:Alternatives to pending or skip in RSpec 3RSpec 3 中挂起或跳过的替代方案
【发布时间】:2016-01-22 09:06:53
【问题描述】:

有些测试有时会通过,有时会失败。我想修复它们,但我目前无法修复,原因超出了这个问题的范围。在 RSpec 3 中有没有 pendingskip 的替代品?

pending 不合适,因为从当前版本的 RSpec 开始,当测试通过时,RSpec 会告诉我它们通过了,因此不应将其标记为待处理,并将构建标记为已损坏。

skip 不适合。我只使用skip 来避免导致套件崩溃的规范。如果测试始终停止失败,我想知道是这样。

我想要运行测试的东西,显示它是否通过,但无论它们通过还是失败都不会导致构建被破坏。

添加此行为的额外 gem 是可以的。

【问题讨论】:

    标签: ruby rspec rspec3


    【解决方案1】:

    没有内置任何东西,但自己做这件事很简单:

    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) { ... } 包裹闪烁测试的主体。

    (警告:上面的代码是现成的,我没有尝试过,所以它可能不完全正确——但应该很接近)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多