pytest: Übergeben eines Klassenparameters an setup_class

8

Ich benutze die Parameter-Annotationen von pytest, um Parameter in eine Klasse zu übergeben. Ich bin in der Lage, die Parameter in den Testmethoden zu verwenden, jedoch kann ich nicht herausfinden, wie die Parameter in der Methode setup_class verwendet werden.

%Vor%

Ich habe versucht, 'n' als Parameter wie die Testmethoden hinzuzufügen:

%Vor%

Was zu einem Fehler führt:

%Vor%

Gibt es eine andere Möglichkeit, den Parameter in der Methode setup_class zu verwenden?

    
user2945303 01.11.2013, 22:22
quelle

2 Antworten

1

Sie können nicht.

Zuerst wird setup_class nur einmal pro Klasse aufgerufen, auch wenn parametrize fixture benutzt wird - Klasse wird nur einmal eingerichtet.

Zweitens ist es nicht dazu gedacht, andere Parameter als cls zu verwenden. Es akzeptiert keine Parameter von paramterize und anderen Fixtures.

Als Lösung können Sie ein parametrisiertes Fixture mit dem Geltungsbereich "class" verwenden:

%Vor%

Weitere Informationen finden Sie unter Ссылка

    
prmtl 11.10.2016 19:24
quelle
-3

Sie sollten Attribute an Ihre Testklasse übergeben, indem Sie sie cls zuweisen. Alle Attribute und Funktionen, die Sie später zuweisen, werden zu Klassenattributen / Methoden.

Der parametrisierte Dekorator sollte für Klassenmethoden verwendet werden (Sie möchten Methoden testen, oder?)

Also:

%Vor%

Der Test wird fehlschlagen in test_internal. It illustrates that params were set to self.n and now self.n equals to params '

    
nickzam 01.11.2013 23:07
quelle

Tags und Links