Kurs Python richtig lernen/Unit Testing

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche

Übung "Unit Testing mit Python und Nose"

In dieser Übung lernen Sie Unit Testing mit dem Python Test Runner Nose.

Geschätzter Zeitaufwand für diese Übung: ca. 2h.

Einstieg

Um Nose kennenzulernen starten wir mit einem Beispiel. Speichern Sie den folgenden Unit test in einem File "test_42.py":

def test_life_the_universe_and_everything():
    assert 42 == 42

Führen Sie diesen Test wiefolgt aus:

$ nosetests

Als Output bekommen Sie eine kleine Statistik inkl. dem Fehlerstatus (OK/NOK). Möchten Sie detailliertere Infors (welche Tests durchgeführt wurden), dann verwenden Sie die Option -v.

Manchmal benötigen Sie für Ihre Unit Tests Fixtures. Diese können Sie wiefolgt definieren:

def test_life_the_universe_and_everything():
    assert 42 != 42
def setUp(): print "Setup"
def tearDown(): print "tearDown"
test_life_the_universe_and_everything.setUp = setUp
test_life_the_universe_and_everything.tearDown = tearDown

Führen Sie dieses Beispiel aus und verifizieren Sie, dass die Ausgaben Ihren Erwartungen entsprechen (setup, failing test, teardown).

Nose erlaubt es Ihnen - neben Testfunktionen - Ihre Tests auch innerhalb einer Klasse zu schreiben (gemäss xUnit). Das gleiche Beispiel wie vorhin:

class Test42:
    def setUp(self): print "Setup"
    
    def tearDown(self): print "tearDown"
    def test_life_the_universe_and_everything(self):
        assert 42 != 42