2016-10-31 7 views
0

シナリオ名や、現在実行中のテストに関するその他の固有の情報を@givenメソッドで取得する必要があります。pytest-bdd:現在のシナリオを@givenから取得する方法は?

私のテストで私はいくつかのリソースがあると宣言します。このリソースは、そのようなWeb APIから作成/抽出されている:

@given('I have a new article') 
def new_article(vcr_fixture): 
    with vcr_fixture.use_cassette('new_article'): # I need to use different cassette name for different scenarios 
     return create_new_article() 

ここでの問題は、私は異なるパラメータを持つ複数のシナリオを持つことができると私は同じリソースを複数回使用したいということです。この場合、それぞれのケースごとに異なるカセットが必要です。カセット間の差別化には、これらのパラメータを使用することはできません。カスケードは、リソースの作成後に適用することができます(たとえば、コメントを追加するなど)。 @given fixtureにリクエストを追加しようとしましたが、固有の情報が見つかりませんでした。

答えて

0

シナリオ名を検査するには、パーサーを使用できます。これはこれはしかし、あなたの質問に答える場合ならば...

from pytest_bdd import parsers 
... 

@given(parsers.parse('I have a {article_name}') 
def new_article(vcr_fixture, article_name): 
    with vcr_fixture.use_cassette(article_name):   
     return create_new_article() 

わかりません

関連する問題