Python-Komponententest: Alle Tests abbrechen, wenn ein bestimmter Test fehlschlägt

8

Ich verwende unittest , um meine Flask-Anwendung zu testen, und nose , um die Tests tatsächlich auszuführen.

Meine erste Testreihe besteht darin, sicherzustellen, dass die Testumgebung sauber ist und die Tests in der konfigurierten Datenbank der Flask-App nicht ausgeführt werden. Ich bin zuversichtlich, dass ich die Testumgebung sauber eingerichtet habe, aber ich möchte etwas Gewissheit darüber haben, ohne alle Tests durchzuführen.

%Vor%

Ich möchte, dass TestEnvironmentTest bewirkt, dass unittest oder nose bei fehlgeschlagenem Zugriff zurückgestellt wird, und verhindert, dass SomeOtherTest und alle weiteren Tests ausgeführt werden. Gibt es eine eingebaute Methode in unittest (preferred) oder nose , die dies erlaubt?

    
Colin Dunklau 15.10.2012, 18:00
quelle

4 Antworten

6

Damit ein Test zuerst ausgeführt wird und nur die Ausführung der anderen Tests im Falle eines Fehlers mit diesem Test gestoppt wird, müssen Sie einen Aufruf zum Test in setUp() (da Python die Testreihenfolge nicht garantiert) und dann fehlschlägt oder den Rest bei einem Fehler überspringt.

Ich mag skipTest() , weil es die anderen Tests nicht ausführt, während es erhöht Eine Ausnahme scheint immer noch versuchen, die Tests auszuführen.

%Vor%     
Colleen 15.10.2012, 20:32
quelle
4

Für Ihren Anwendungsfall gibt es die Funktion setUpModule() :

  

Wenn eine Ausnahme in setUpModule ausgelöst wird, dann keine der Tests in   Das Modul wird ausgeführt und der tearDownModule wird nicht ausgeführt. Ob   Die Ausnahme ist eine SkipTest Ausnahme, dann wird das Modul sein   wird als übersprungen gemeldet anstatt als Fehler.

Testen Sie Ihre Umgebung in dieser Funktion.

    
Piotr Dobrogost 15.10.2012 21:09
quelle
2

Sie können ganze Testfälle überspringen, indem Sie skipTest() in setUp() aufrufen. Dies ist eine neue Funktion in Python 2.7. Anstatt die Tests zu versagen, werden sie einfach alle übersprungen.

    
kichik 15.10.2012 19:01
quelle
0

Ich bin mir nicht ganz sicher, ob es Ihren Bedürfnissen entspricht, aber Sie können die Ausführung einer zweiten Suite von Unittests von dem Ergebnis einer ersten Suite von Unittests abhängig machen:

%Vor%     
silvado 15.10.2012 19:03
quelle

Tags und Links