我正在针对几个不同市场中存在的网站产品运行RSpec测试。每个市场都有不同的功能组合,等等。我希望能够编写测试,以便它们在运行时根据要针对的市场/环境跳过自己。在不同的市场上运行时,测试不应失败,也不应通过-它们根本不适用。
不幸的是,似乎没有一种简单的方法可以将测试标记为已跳过。我将如何执行此操作而不尝试注入“待处理”的块(无论如何还是不准确的)?
最佳答案
describe "market a", :market => 'a' do
...
end
describe "market b", :market => 'b' do
...
end
describe "market c", :market => 'c' do
...
end
RSpec.configure do |c|
# Set these up programmatically;
# I'm not sure how you're defining which market is 'active'
c.filter_run_excluding :market => 'a'
c.filter_run_excluding :market => 'b'
# Now only tests with ":market => 'c'" will run.
end
或更妙的是,使用implicit filters。
describe "market a", :if => CurrentMarket.a? do # or whatever
...
end
关于testing - 在运行时跳过RSpec测试用例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5415400/