Wie führe ich mehrere Python-Testfälle in einer Schleife aus?

8

Ich bin neu in Python und versuche etwas zu tun, was ich oft in Ruby mache. Nämlich über eine Reihe von Indizes zu iterieren, sie als Argument für die Funktion zu verwenden und ihre Ergebnisse mit einem Array von Fixture-Ausgaben zu vergleichen.

Also habe ich es so geschrieben, wie ich es normalerweise in Ruby mache, aber das führte nur zu einem Testfall.

%Vor%

Ich versuche, den Test für jedes Element in der Reihe zu bekommen. Wie kann ich das tun?

    
picardo 28.09.2013, 20:58
quelle

3 Antworten

8

Mit unittest können Sie den Unterschied zwischen zwei Sequenzen in einem Testfall zeigen.

%Vor%

Wenn das nicht flexibel genug ist, ist es mit unittest möglich, mehrere Tests zu generieren, aber es ist ein bisschen schwierig.

%Vor%

Nase macht das oben genannte einfacher durch Testgeneratoren .

%Vor%

Ähnliche Fragen:

Trevor Merrifield 28.09.2013, 21:14
quelle
5

In der Python-Welt sind zwei der beliebtesten Optionen zum Schreiben von Tests:

In pytest parametrisieren Sie Tests sehr einfach:

%Vor%

Dies wird auch beim Ausführen von Tests eine gute Ausgabe erzeugen:

%Vor%

Ich benutze Pytest jetzt seit zwei Jahren und es ist ein sehr nettes Werkzeug. Sie haben dort viele Funktionen. Neben der Parametrisierung gibt es auch Fixtures, sehr sehr schöne Assertions (du musst nicht assertEqual schreiben, nur assert a==b und pytest können sehr nette und hilfreiche Ausgaben dafür generieren.)

    
spinus 28.09.2013 21:34
quelle
2

Ausgehend von Python 3.4 können Sie das folgendermaßen machen:

%Vor%

Ссылка

    
Antoine Fontaine 28.06.2016 07:55
quelle

Tags und Links