我必须扩展一个现有的黄瓜功能,其中一些新的场景涵盖了一些新的行为。目前整个黄瓜/ vcr的东西设置为这样,它将寻找具有匹配方案名称的磁带:
feature bar
@vcr
scenario foo
将在./cassettes/bar/foo.yml
中查找录制的磁带。但还有其他情况可以回收之前记录的盒式磁带。 (从我这边添加的那些)。因此,每个方案都有一个文件夹膨胀,同一个盒式磁带,但只重命名:
feature bar
@vcr
scenario foo
@vcr
scenario foo1
...
@vcr
scenario fooX
./cassettes/bar/foo.yml
,./cassettes/bar/foo1.yml
... ./cassettes/bar/fooX.yml
内容完全相同。让这种干燥的正确方法是什么?
是否有可能明确指定要使用的录像带?
@vcr(:cassette => foo)
scenario fooX
非常感谢;)
答案 0 :(得分:0)
我通过为VCR定义一个新标签解决了这个问题:
#./test_helper/vcr.rb
VCR.cucumber_tags do |t|
t.tag '@vcr', use_scenario_name: true
t.tag '@foo'
end
然后我添加了一个前后钩子,它加载了我想要的盒子:
# ./features/support/env.rb
Before('@foo') do
VCR.insert_cassette('cassettes/bar/foo')
end
After('@foo') do
VCR.eject_cassette
end
所以现在我只需要为类似的场景注释我新定义的标签:
feature bar
@foo
scenario foo
@foo
scenario foo1
...
@foo
scenario fooX
所以现在我只剩下一个录制的录音带文件。