Я разрабатываю модуль Python с несколькими исходными файлами, каждый из которых имеет свой собственный тестовый класс, полученный из unittest прямо в источнике. Рассмотрим структуру каталогов:
dirFoo\
test.py
dirBar\
__init__.py
Foo.py
Bar.py
Чтобы проверить Foo.py или Bar.py, я бы добавил это в конце исходных файлов Foo.py и Bar.py:
if __name__ == "__main__":
unittest.main()
И запустите Python в любом из источников, т.е.
$ python Foo.py
...........
----------------------------------------------------------------------
Ran 11 tests in 2.314s
OK
В идеале, я бы "test.py" автоматически выполнил поиск dirBar для любых производных классов unittest и сделал один вызов "unittest.main()". Какой лучший способ сделать это на практике?
Я попытался использовать Python для вызова execfile для каждого *.py файла в dirBar, который запускается один раз для первого .py файла и выйдет из вызывающего test.py, а затем мне придется дублировать мой код, добавив unittest.main() в каждый исходный файл, что нарушает принципы DRY.