Тестирование примера кода в модулях Python - PullRequest
1 голос
/ 07 мая 2010

Я нахожусь в процессе написания модуля Python, который включает в себя несколько примеров. Эти образцы не являются юнит-тестами, и они слишком длинные и сложные, чтобы быть тестами. Меня интересуют передовые практики для автоматической проверки выполнения этих образцов.

Мой текущий макет проекта довольно стандартный, за исключением того, что есть дополнительный make-файл верхнего уровня, который имеет цели сборки, установки, юнит-тестирования, покрытия и профиля, которые делегируют ответственность за setup.py и nose при необходимости.

projectname/
    Makefile
    README
    setup.py
    samples/
        foo-sample
        foobar-sample
    projectname/
        __init__.py
        foo.py
        bar.py
    tests/
        test-foo.py
        test-bar.py

Я рассмотрел возможность добавления модуля сэмплетест или добавления декораторов nose.tools.istest к функциям точек входа сэмплов, но для небольшого числа сэмплов эти решения звучат немного некрасиво.

Этот вопрос похож на Пример кода автоматического модульного теста , но я предполагаю, что лучшие практики Python будут отличаться от C #

Ответы [ 2 ]

3 голосов
/ 07 мая 2010

В большинстве случаев я просто использую unittest для тестирования своих примеров и функциональных тестов.Это не модульное тестирование, но многое из того, что я делаю с модулем unittest, не так.По словам Кнута: «Компьютер не против, если его программы предназначены для целей, которые не соответствуют их именам».

3 голосов
/ 07 мая 2010

Разве вы не можете просто сделать:

if __name__ == "__main__":
  run_tests()

в коде модуля? Таким образом, он будет работать только в том случае, если модуль вызывается как отдельный програн, а не когда он import введен в другой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...