Testing 在运行时跳过RSpec测试用例

Testing 在运行时跳过RSpec测试用例,testing,rspec,rspec2,functional-testing,Testing,Rspec,Rspec2,Functional Testing,我正在对一个存在于几个不同市场的网站产品进行RSpec测试。每个市场都有细微不同的功能组合,等等。我希望能够编写测试,使它们在运行时跳过自己,这取决于它们所针对的市场/环境。这些测试在不同的市场运行时不应该失败,也不应该通过——它们根本不适用 不幸的是,似乎没有一种简单的方法将测试标记为跳过。在不尝试注入“挂起”块(无论如何都不准确)的情况下,如何执行此操作?使用 或者更好的是,使用 我发现这个问题是在寻找一种方法来真正跳过我知道现在会失败的例子,但一旦情况发生变化,我想“取消”它们。因此,对于

我正在对一个存在于几个不同市场的网站产品进行RSpec测试。每个市场都有细微不同的功能组合,等等。我希望能够编写测试,使它们在运行时跳过自己,这取决于它们所针对的市场/环境。这些测试在不同的市场运行时不应该失败,也不应该通过——它们根本不适用

不幸的是,似乎没有一种简单的方法将测试标记为跳过。在不尝试注入“挂起”块(无论如何都不准确)的情况下,如何执行此操作?

使用

或者更好的是,使用


我发现这个问题是在寻找一种方法来真正跳过我知道现在会失败的例子,但一旦情况发生变化,我想“取消”它们。因此,对于rspec 3.8,我发现可以在示例中使用
skip
,如下所示:

it 'is going to fail under several circumstances' do
  skip("Here's the reason") if conditions_met?
  expect(something)
end

实际上,在大多数情况下(可能没有这个问题那么复杂),我宁愿使用
pending
,而不是
skip
,因为如果测试停止失败,它会通知我,所以我可以“unskip”它们。正如我们所知,跳过的测试将永远不会再次执行=)

隐式过滤器似乎是一种方法。我很惊讶,似乎没有办法让测试向格式化程序报告它被排除了:/@andrewdotnich实际上我宁愿使用
pending
,而不是
skip
,因为如果测试停止失败,它会通知我,所以我可以“unskip”它们。我们都知道,跳过的测试将永远不再执行=)将在一秒钟内编辑我的回复
describe "market a", :if => CurrentMarket.a? do # or whatever
   ...
end
it 'is going to fail under several circumstances' do
  skip("Here's the reason") if conditions_met?
  expect(something)
end