Автостопом по Python | страница 64
>(venv)$ ### внутри каталога высшего уровня, tablib/
>(venv)$ python — m unittest test_tablib.py
>……………………………………………………..
>---
>Ran 62 tests in 0.289s
>OK
В версии Python 2.7 метод unittest также содержит собственный механизм обнаружения тестов, который доступен с помощью параметра discover в командной строке:
>(venv)$ ### *above* the top-level directory, tablib/
>(venv)$ python — m unittest discover tablib/
>……………………………………………………..
>---
>Ran 62 tests in 0.234s
>OK
После того как вы убедитесь, что все тесты проходят, вы: а) найдете тестовый случай, связанный с изменяемой частью проекта, и будете часто запускать его при изменении кода; б) напишете новый тестовый случай для функциональности, которую хотите добавить, или для ошибки, которую отслеживаете, и будете часто запускать его при изменении кода. Рассмотрим в качестве примера следующий сниппет:
>(venv)$ ### внутри каталога высшего уровня, tablib/
>(venv)$ python — m unittest test_tablib.TablibTestCase.test_empty_append
>.
>---
>Ran 1 test in 0.001s
>OK
Как только ваш код начнет работать, снова задействуйте весь набор тестов перед тем, как отправить его в репозиторий. Поскольку вы часто запускаете тесты, они должны быть максимально быстрыми. Более подробную информацию о том, как использовать метод unittest, смотрите в документации по адресу http://bit.ly/unittest-library.
Пакет Requests использует py.test. Чтобы увидеть его в действии, откройте терминальную оболочку, перейдите во временный каталог, клонируйте Requests, установите все зависимости и запустите файл py.test, как показано здесь:
>$ git clone — q https://github.com/kennethreitz/requests.git
>$
>$ virtualenv venv — q — p python3 # dash — q for 'quiet'
>$ source venv/bin/activate
>(venv)$
>(venv)$ pip install — q — r requests/requirements.txt # 'quiet' again…
>(venv)$ cd requests
>(venv)$ py.test
>========================= test session starts =================================
>platform darwin — Python 3.4.3, pytest-2.8.1, py-1.4.30, pluggy-0.3.1
>rootdir: /tmp/requests, inifile:
>plugins: cov-2.1.0, httpbin-0.0.7
>collected 219 items
>tests/test_requests.py………………………………………………..
>X……………………………………..
>tests/test_utils.py..s…………………………………………….
>========= 217 passed, 1 skipped, 1 xpassed in 25.75 seconds ===================
Другие популярные инструменты
Инструменты для тестирования, перечисленные здесь, используются не так часто, но все еще достаточно популярны.
pytest (http://pytest.org/latest