2012-10-01 50 views
15

私のunittestフォルダはこのように構成されています。サブフォルダを使ったPythonユニットテスト

. 
|-- import 
| |-- import.kc 
| |-- import.kh 
| `-- import_test.py 
|-- module 
| |-- module.kc 
| |-- module.kh 
| `-- module_test.py 
`-- test.py 

私は単にPythonモジュールをunittestの使用して、私の*_test.pyのそれぞれを実行するためにtest.pyを実行したいと思います。 は現在、私のtest.pyは、Pythonドキュメントは、それが自動的にサブフォルダに私のテストを発見する必要があることを述べている

#!/usr/bin/env python 

import unittest 

if __name__ == "__main__": 
    suite = unittest.TestLoader().discover('.', pattern = "*_test.py") 
    unittest.TextTestRunner(verbosity=2).run(suite) 

含まれています。しかし、それはしません。現時点で

、それだけで私はルートディレクトリにそれらを移動すると、それが正常に動作しますので、それは、私の*_test.pyファイルの問題ではありません確信している

---------------------------------------------------------------------- 
Ran 0 tests in 0.000s 

OK 

を出力.. 何午前私は間違っている?

答えて

19

importおよびmoduleディレクトリに__init__.pyを追加します。

+0

「__init __。py」ファイルに触れただけでうまくいきました。ありがとう。なぜ私はこれをしなければならないのか説明できますか?そしてもう一つの解決策はありますか?私は他の人と働いているので、テストを作成するのが最も簡単な方法にしたいと思います。 – tomahh

+2

テストディスカバリの実装方法の成果物です。基本的に、テストを含む各ディレクトリは、Pythonモジュールとしてインポート可能でなければなりません。詳細については、[docs](http://docs.python.org/2/library/unittest.html#test-discovery)を参照してください。 –

2

スイッチが可能であれば、unittestモジュールの代わりにnoseを使用することを検討してください。独自のtest.pyファイルなどで混乱させる必要はありません。 nosetestsを実行すると、すべてのテストが検索され実行されます。

関連する問題