2010-12-21 4 views
35

Gibt es einen Weg in Python für einen Pyunit-Test, um den Test auszugeben, der gerade ausgeführt wird. Beispiel:Eine Möglichkeit zur Ausgabe des Pyunit-Testnamens in setup()

def setUp(self): 
    log.debug("Test %s Started" % (testname)) 

def test_example(self): 
    #do stuff 

def test_example2(self): 
    #do other stuff 

def tearDown(self): 
    log.debug("Test %s Finished" % (testname)) 

Antwort

51

Sie können self._testMethodName verwenden. Dies wird von der Elternklasse parentest.TestCase übernommen.

def setUp(): 
    print "In method", self._testMethodName 
+0

Danke! Hat super funktioniert. –

+1

Wo ist die Dokumentation dafür? – Cory

+2

Es gibt keine. Wie Sie aus dem Unterstrichpräfix für den Attributnamen erraten können, handelt es sich um ein internes Attribut, das nicht angezeigt werden soll. Ich wünschte mir, dass es dafür einen richtigen Weg gäbe. –

0
>>> class A: 
    pass 
>>> a = A() 
>>> a 
<__main__.A instance at 0x203cf80> 
>>> a.__class__.__name__ 
'A' 
>>> 
+1

Das ist der Klassenname, und nicht der Name der Methode, und er versucht, es in den 'setUp' und' tearDown' zu bekommen und nicht innerhalb der Methode selbst. –

+0

Korrigieren. Benötige den Methodennamen innerhalb von setUp und tearDown. Danke Daniel –

Verwandte Themen