0

いくつかの新しい動作をカバーするいくつかの新しいシナリオで、既存のキュウリ機能を拡張する必要があります。現時点では、このキュウリ/ビデオデッキ全体が、一致するシナリオ名を持つカセットを探すように設定されています。

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

そして、必要なカセットをロードする before および after フックを追加しました。

# ./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

だから今、私は録音されたカセットファイルを1つしか残していません。

于 2014-01-30T12:57:58.793 に答える