2016-08-28 2 views
-4

В настоящее время я разрабатываю приложение Python, которое я постоянно тестирую, просто записывая время выполнения различных частей.Разработка vs Release Python Code

Большая часть кода связана только с тестовой средой и не существует в приложении реального мира, я разделяю их на функции и на данный момент комментирую эти вызовы при тестировании. Это требует, чтобы я помнил, какие вызовы относятся к тестированию только компонентов (они довольно чередуются, поэтому я не могу сгруппировать функциональность).

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

Я новичок в python, поэтому я, возможно, упустил некоторые простые решения. Заранее благодарен

+0

Не могли бы вы предоставить образец кода общего кода частей, которые вы хотели бы выделить? Один из вариантов, который приходит мне на ум, состоит в том, чтобы переместить эти части в отдельные функции, которые украшены каким-то обычным декоратором, например. '@ Testing_environment_only'. Но мне кажется, что те части кода, если они тестируют код, не имеют смысла проживать вместе с производственным кодом - плохой архитектурой. Удостоверьтесь, чтобы разработать немного больше. –

+0

Весь тестовый код в настоящее время находится в отдельных функциях. Я должен был сказать, что я новичок в Python, поэтому даже простые предложения приветствуются, я не знал об использовании декораторов, поэтому я рассмотрю это. – user2071737

+1

Правильный способ справиться с этим - провести тесты в отдельном пакете. При необходимости эти тесты могут издеваться над другим кодом, который вы тестируете. Если вы предоставите образец кода, вы можете получить более ценную обратную связь. –

ответ

0

Есть библиотеки для тестирования, подобные тем, которые находятся в стандартной библиотеке development-section. Если вы еще не использовали такие инструменты, вы должны начать делать это - они очень помогают в тестировании. (особенно unittest).

Обычно Python запускает программы в режиме отладки с __debug__ набором для True (см docs on assert) - вы можете отключить режим отладки, установив параметры командной строки -O или -OO для оптимизации (см docs).

Существует что-то об использовании специально утверждений в Python Wiki

0

Я бы сказал, что если вы закомментировать несколько частей кода при переключении между режимами отладки выпуска & Я думаю вы делаете неправильно. Посмотрите, например, на logging library, как вы можете видеть, с этой библиотекой вы можете указать уровень ведения журнала, который хотите использовать, только путем изменения одного параметра.

Старайтесь избегать комментирования определенных частей кода отладки с помощью одной или нескольких переменных, которые управляют режимом (отладки, выпуска, ...), который запускает ваш скрипт. Вы также можете использовать некоторый builtin ones python уже предоставляет