2011-08-31 58 views
0

我正在努力知道從unittest開始從何處入手,閱讀了潛入python教程並查看了http://pyunit.sourceforge.net/使用pyunit單元測試「外部」程序的擴展

我有一個分析軟件(稱爲'prog.exe'),它使用python作爲它的輸入套件。我已經開始編寫一個python模塊,我將從該輸入套件導入以提供一些有用的功能。因此,運行這些分析的人會是這樣的:

prog.exe inputdeck.py

其中inputdeck.py包含:

from mymodule import mystuff 

那麼,如何建立和運行測試上mymodule?以上是在系統調用setUp方法的測試中,還是什麼?


確定 - 解決方案:

不要使用unittest.main()因爲這是命令行工具。而不是直接調用相應的單元測試方法如下:

在命令行中運行:

prog.exe mytests.py 

其中mytests.py包含:

import unittest 
# ... code to run the analysis which we'll use for the tests ... 
# ... test definitions ... 
suite = unittest.TestLoader().loadTestsFromTestCase(test_cases) 
unittest.TextTestRunner().run(suite) 

見例如在http://docs.python.org/release/2.6.7/library/unittest.html#unittest.TextTestRunner

回答

0

的PyUnit是一個小有點過時(2001),它現在完全包含在python核心發行版中(http://docs.python.org/library/unittest.html)。您應該開始閱讀本文檔,尤其是basic example part

要測試你的模塊,你必須創建一個文件,姑且稱之爲mymodule_test.py並把它這樣的:

import unittest 
from mymodule import mystuff 

class MyTestCase(unittest.TestCase): 
    def test_01a(self): 
     """ test mystuff""" 
     self.failUnless(mystuff.do_the_right_stuff()) 

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

python mymodule_test.py

+0

是的運行它,這就是潛水-into-python教程(這在某些地方也有點過時)說。但如果我這樣做,prog.exe永遠不會涉及,所以我無法在mymodule中測試這些東西。我想這個問題是我想從命令行調用BOTH「python mymodule_test.py」和「prog.exe」,我看不出如何解決這個問題。 – lost