2011-08-31 4 views
0

私はunittestでどこから始めるべきかを知り、を見て、ダイブインパイソンチュートリアルを読んでいます。pyunitで '外部'プログラムのユニットテスト拡張機能

私は、入力デッキにPythonを使用する解析ソフトウェア(prog.exeと呼ぶ)を持っています。私はいくつかの便利な機能を提供するために、その入力デッキからインポートするPythonモジュールを作成し始めました。だから、これらの分析のいずれかを実行すると、次のようになります:

from mymodule import mystuff 

を、どのように私はセットアップとmymodule上でテストを実行します:inputdeck.pyが含まれてい

prog.exe inputdeck.py

?テストのsetUpメソッドのシステムコールで上記のようにする必要がありますか?


OK - ソリューション:

それは、コマンドラインツールだとしてunittest.main()を使用しないでください。次のようにする代わりに、直接、適切なunittestのメソッドを呼び出します。

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でテストすることはできません。私が推測する問題は、コマンドラインから "python mymodule_test.py"と "prog.exe"の両方を呼び出したいということです。それを解消する方法はわかりません。 – lost

関連する問題