首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在类似的场景中回收录制的vcr磁带,或者告诉vcr在场景中使用特定的磁带

在类似的场景中回收录制的vcr磁带,或者告诉vcr在场景中使用特定的磁带
EN

Stack Overflow用户
提问于 2014-01-29 22:20:30
回答 1查看 268关注 0票数 0

我必须用一些新的场景扩展一个现有的黄瓜特性,包括一些新的行为。目前,整个黄瓜/vcr thingy的设置是这样的,它将查找具有匹配场景名称的磁带:

代码语言:javascript
复制
feature bar

  @vcr
  scenario foo

将在./cassettes/bar/foo.yml中寻找录制的盒式磁带。但是还有更多的方案可以回收以前录制的盒式磁带。(我这边也要加的)。因此,对于每个场景,都有一个放满相同盒式磁带的文件夹,但只重命名:

代码语言:javascript
复制
feature bar

  @vcr
  scenario foo

  @vcr
  scenario foo1

  ...

  @vcr
  scenario fooX

./cassettes/bar/foo.yml./cassettes/bar/foo1.yml . ./cassettes/bar/fooX.yml的含量也完全一样。怎样才能把这个弄干呢?

是否有可能指定要显式使用的vcr盒式磁带,例如?

代码语言:javascript
复制
  @vcr(:cassette => foo)
  scenario fooX

非常感谢;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-30 12:57:58

我通过为VCR定义一个新标记来解决这个问题:

代码语言:javascript
复制
#./test_helper/vcr.rb
VCR.cucumber_tags do |t|
  t.tag '@vcr', use_scenario_name: true
  t.tag '@foo'
end

然后我添加了一个前后挂钩,它装载了我想要的盒式磁带:

代码语言:javascript
复制
# ./features/support/env.rb
Before('@foo') do
  VCR.insert_cassette('cassettes/bar/foo')
end

After('@foo') do
  VCR.eject_cassette
end

因此,现在我只需要为类似的场景注释我的新定义的标记:

代码语言:javascript
复制
feature bar

  @foo
  scenario foo

  @foo
  scenario foo1

  ...

  @foo
  scenario fooX

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21443900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档