Особенности юнит-тестирования Python - PullRequest
0 голосов
/ 14 декабря 2011

У меня довольно сложная система, которую я хочу протестировать с помощью python. Мой тестовый код будет взаимодействовать с системой с помощью модуля Python, который я уже написал. Однако есть несколько вещей, которые я так и не смог выяснить в отношении инфраструктуры тестирования. Я еще не выбрал, но, очевидно, я чувствую себя направленным на unittest.

  1. Передача параметров для испытаний. Мне нужно передать конкретный идентификатор во многие разные части моего тестового кода, в зависимости от того, какой компонент системы я тестирую. Обеспечивает ли unittest это? Другими словами, сейчас у меня просто есть тестовый сценарий, который я запускаю так: ./testscript.py 123 win 32 Как я могу аналогичным образом передать те же параметры в рамках тестирования?

  2. unittest предусматривает методы setUp() и tearDown(), но они вызываются до / после каждого метода тестирования. Как я могу иметь функции, которые вызываются до / после всей батареи тестов в TestCase?

Может быть unittest это не то, что я на самом деле хочу использовать?

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Я использую tox для запуска моих тестов в нескольких конфигурациях. Некоторые из моих тестов юнитов пропускают определенные тесты, если нет дополнительного модуля, а это значит, что мне нужна проверка, чтобы убедиться, что код обнаружения модуля работает. В Tox нет простого способа указать аргументы командной строки, поэтому самым простым решением было просмотреть переменную окружения.

Указатель F.C. на python, unittest: есть ли способ передать параметры командной строки в приложение применяется, если вы решите, что дополнительные аргументы - это путь.

1 голос
/ 14 декабря 2011

Что касается # 2, похоже, setUpClass() и tearDownClass() предназначены для этого В документации даже приведен пример использования его для createExpensiveConnectionObject().

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