私はpyestによるパラメータ化されたテストについて学んでいます。 the relevant pytest documentationに従った後、私はこの単純な例を思い付いた:pytestによるテストのパラメータ化
import unittest
import pytest
@pytest.fixture(autouse=True, params=['foo', 'bar'])
def foo(request):
print('fixture')
print(request.param)
class Foo(unittest.TestCase):
def setUp(self):
print('unittest setUp()')
def test(self):
print('test')
これは、次のエラーを与える:
Failed: The requested fixture has no parameter defined for the current test.
E
E Requested fixture 'foo' defined in:
E tests/fixture.py:7
7行目はdef foo(request):
です。
このエラーはどのような原因があり、解決するにはどうすればよいですか?
私は通常は「( '@のpytest.mark.parametriseを使用リクエスト '、[' foo '、' bar ']) '。あなたの質問に答えることはできませんが、速い修正( 'request'は引数の名前です)のように働くかもしれません。 – Artyer
@Artyer提案に感謝します。私がリンクしているドキュメントにはこれがないので、私が間違っていることを学ぶことにはまだ興味があります。 –
@Artyerが彼の例で言ったように、 "要求"と名前をつけて値を渡しているので、問題がそのエラーで言及されているようだと思います。あなたのコードでは、リクエスト引数をfoo関数に渡しますが、フィクスチャ内で定義していないため、パラメータはありません。 –