0

我必须使用一些涵盖一些新行为的新场景来扩展现有的黄瓜功能。目前,整个 cucumber/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 盒式磁带,例如?

  @vcr(:cassette => foo)
  scenario fooX

非常感谢 ;)

4

1 回答 1

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

所以现在我只剩下一个录制的磁带文件了。

于 2014-01-30T12:57:58.793 回答