Обнаружение Python unittest с подпапками

Моя папка unittest организована таким образом.

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

Я хочу просто запустить test.py для запуска каждого из моих *_test.py с помощью unittest python module. В настоящее время мой test.py содержит

#!/usr/bin/env python

import unittest

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

В документации на python говорится, что она должна автоматически обнаруживать мой тест во вложенных папках. Но это не так.

В настоящий момент он выводит только

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

OK

Я уверен, что это не проблема с моим файлом *_test.py, потому что, когда я перемещаю их в корневой каталог, он отлично работает. Что я делаю неправильно?

Ответы

Ответ 1

Добавьте __init__.py в каталоги import и module.

Ответ 2

С помощью nose вместо модуля vanilla unittest, если вы можете переключиться. Вам не нужно будет вмешиваться в свой файл test.py или что-то еще; запуск nosetests найдет и запустит все ваши тесты.