2014-03-03 80 views
6

所以我們可以說我有以下幾點:爲什麼在'unittest.main()'被執行後python不執行任何操作?

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' 

,輸出是:

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

>> OK 

,我想知道爲什麼沒有得到打印「完成」(或任何涉及後) ?

回答

10

通行證exit=Falseunittest.main()調用(documentation):

unittest.main(exit=False) 

這裏就是我得到的控制檯上:

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

OK 
Done 

僅供參考,引擎蓋下的單元測試的TestProgram.runTests()電話sys.exit()如果該值exitTrue(默認情況下):

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

所以我假設有一個名爲'exit'的參數,其默認值爲'True',或者它是如何工作的? – skamsie

+1

'exit'的默認值是'True',在運行測試後,它只是調用'sys.exit()'。 – alecxe

+0

太好了,謝謝你,等待10分鐘過去,所以我可以接受你的答案:) – skamsie

相關問題