Ich lerne über parametrisierte Tests mit Pyest. Nach dem folgenden the relevant pytest documentation kam ich mit diesem einfachen Beispiel folgenden:Parametrierung von Tests mit 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')
Dies wird folgenden Fehler gibt:
Failed: The requested fixture has no parameter defined for the current test.
E
E Requested fixture 'foo' defined in:
E tests/fixture.py:7
Linie 7 def foo(request):
ist.
Was verursacht diesen Fehler und wie behebe ich ihn?
ich normalerweise '@ pytest.mark.parametrise verwenden (‘ Anfrage ', [' foo ',' bar ']) '. Es beantwortet Ihre Frage nicht, aber es könnte als eine schnelle Lösung funktionieren (Wo 'Anfrage' ist der Name des Arguments) – Artyer
@Artyer Danke für den Vorschlag. Die Dokumente, die ich verlinke, haben das nicht, also bin ich immer noch daran interessiert zu lernen, was ich falsch mache. –
Ich denke, das Problem ist wie es in dem Fehler erwähnt, Sie haben den Parameter nicht definiert, wie @Artyer in seinem Beispiel sagte, er nennt "Anfrage" und dann die Werte übergeben. In Ihrem Code übergeben Sie an die foo-Funktion das Anfrage-Argument, aber es gibt keinen Parameter, den Sie nicht innerhalb des Fixtures definieren. –