2014-03-03 7 views
6

Also lassen Sie uns sagen, ich habe folgendes:Warum führt Python nichts aus, nachdem 'unittest.main()' ausgeführt wurde?

import unittest 

class MyTests(unittest.TestCase): 

    def test001(self): 
    print 'This is test001' 

    def test002(self): 
    print 'This is test002' 

if __name__ == '__main__': 
    unittest.main() 
    print 'Done' 

und der Ausgang ist:

>> This is test001 
>> This is test002 
>> ---------------------------------------------------------------------- 
>> Ran 2 tests in 0.001s 

>> OK 

Und ich habe mich gefragt, warum nicht zu drucken bekommt ‚Fertig‘ (oder alles, was danach kommt) ?

Antwort

10

Pass exit=False zum unittest.main() Aufruf (documentation):

unittest.main(exit=False) 

Hier ist, was ich auf der Konsole bekommen:

$ python test.py 
This is test001 
.This is test002 
. 
---------------------------------------------------------------------- 
Ran 2 tests in 0.000s 

OK 
Done 

FYI, unter der TestProgram.runTests() Anrufe sys.exit(), wenn der Wert der Haube Unittest von ist True (das ist standardmäßig):

def runTests(self): 
    ... 
    if self.exit: 
     sys.exit(not self.result.wasSuccessful()) 
+0

Also nehme ich an, dass es einen Parameter namens 'exit' gibt, der den Standardwert 'True' hat, oder wie funktioniert das? – skamsie

+1

Der Standardwert von 'exit' ist' True', unter der Haube ruft er 'sys.exit()' nach dem Ausführen von Tests auf. – alecxe

+0

Toll, danke, warten auf die 10 Minuten zu passieren, damit ich Ihre Antwort akzeptieren kann :) – skamsie

Verwandte Themen