Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Модульные тесты — это фрагменты кода, которые тестируют другие единицы кода в приложении, обычно изолированные функции, классы и т. д. Когда приложение проходит все модульные тесты, вы можете быть уверены в правильности по крайней мере низкоуровневой функциональности программы.
Python использует модульные тесты для проверки сценариев при разработке программы. Поддержка Python в Visual Studio включает обнаружение, выполнение и отладку модульных тестов в контексте процесса разработки без необходимости выполнять тесты отдельно.
В этой статье представлен краткий обзор возможностей модульного тестирования в Visual Studio с помощью Python. Дополнительные сведения об модульном тестировании см. в разделе Модульный тест кода.
Предпосылки
Visual Studio на Windows, установленный с поддержкой Python-разработки. Дополнительные сведения см. в статье "Установка поддержки Python в Visual Studio".
Проект Python с кодом или папкой с кодом Python.
Visual Studio для Mac не поддерживается. Visual Studio Code в Windows, Mac и Linux хорошо работает с Python с помощью доступных расширений.
Выбор тестовой платформы для проекта Python
Visual Studio поддерживает две платформы тестирования для Python, unittest и pytest (доступны в Visual Studio 2019 версии 16.3 и более поздних версиях). По умолчанию при создании проекта Python не выбрана платформа.
Выполните следующие действия, чтобы выбрать тестовую платформу для проекта Python:
В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите "Свойства".
В области "Свойства проекта" выберите вкладку "Тест" и выберите тип платформы test :
Для платформы unittest Visual Studio назначает корневой каталог проекта для обнаружения тестов. Значение по умолчанию —
., но при настройке параметров проекта можно указать другое расположение. Можно также указать одну или несколько строк для шаблона имени тестового файла, напримерtest*.py, test_*.py.Для платформы pytest параметры тестирования, такие как расположение теста и шаблоны имени файла, задаются с помощью стандартного файла конфигурации pytest.ini . По умолчанию папка рабочей области или проекта используется для расположения. Шаблон имени файла по умолчанию включает
test_*pyи*_test.py. Дополнительные сведения см. в справочной документации pytest.
Замечание
При определении шаблона имени файла следует помнить, что специальные символы, такие как подчеркивание (
_) не совпадают с подстановочным знаком (*). Если вы хотите использовать специальные символы в имени файла, укажите эти символы в определении шаблона, напримерtest_*.py.Чтобы сохранить выбор и параметры платформы, можно использовать сочетание клавиш CTRL+S .
После настройки платформы Visual Studio инициирует обнаружение тестов и открывает обозреватель тестов.
Настройка тестирования для Python без проекта
Visual Studio позволяет запускать и тестировать существующий код Python без проекта, открыв папку с кодом Python. В этом сценарии необходимо использовать файлPythonSettings.json для настройки тестирования.
Откройте существующий код Python с помощью параметра "Открыть локальную папку ":
При открытии папки Python Visual Studio создает несколько скрытых папок для управления параметрами, связанными с программой. Чтобы просмотреть эти папки (и другие скрытые файлы и папки, например папку .git ) в обозревателе решений, выберите параметр "Показать все файлы ":
В обозревателе решений разверните папку "Локальные параметры " и дважды щелкните файл PythonSettings.json , чтобы открыть файл в редакторе.
Замечание
В большинстве конфигураций показаны два файла параметров: PythonSettings.json и ProjectSettings.json. Для этого упражнения необходимо изменить файлPythonSettings.json .
Если файл PythonSettings.json не отображается в папке "Локальные параметры ", его можно создать вручную:
Щелкните правой кнопкой мыши папку "Локальные параметры" и выберите "Добавить>новый файл".
Назовите файл PythonSettings.json, затем нажмите Enter, чтобы сохранить изменения.
Visual Studio автоматически открывает новый файл в редакторе.
В файлеPythonSettings.json добавьте следующий код для определения
TestFramework. Задайте значение платформы pytest или unittest в зависимости от требуемой платформы тестирования:{ "TestFramework": "unittest", "UnitTestRootDirectory": "testing", "UnitTestPattern": "test_*.py" }Для платформы unittest , если вы не определяете определенные значения для
UnitTestRootDirectoryпараметров иUnitTestPatternпараметров в файле PythonSettings.json , Visual Studio автоматически добавляет эти поля со значениями.по умолчанию иtest*.pyсоответственно.Для платформы pytest параметры конфигурации всегда указываются в файле конфигурации pytest.ini , а не через параметры Visual Studio.
Если программа Python содержит папку src , отдельную от папки, содержащей тесты, укажите путь к папке src с
SearchPathsпараметром в файле PythonSettings.json :"SearchPaths": [".\\src"]Сохраните изменения в файле PythonSettings.json .
После настройки фреймворка Visual Studio инициирует поиск тестов для указанного фреймворка. Вы можете получить доступ к тесту в обозревателе тестов.
Добавление и обнаружение тестов
По умолчанию Visual Studio определяет тесты unittest и pytest как методы, имена которых начинаются с test.
Чтобы узнать, как Visual Studio инициирует обнаружение тестов, выполните следующие действия.
Откройте проект Python в Visual Studio.
Задайте свойства платформы тестирования для проекта, как описано в разделе "Выбор тестовой платформы для проекта Python".
В обозревателе решений щелкните проект правой кнопкой мыши и выберите команду "Добавить>новый элемент".
В диалоговом окне "Добавление нового элемента" выберите тип файла модульного теста Python .
Введите имя файла, которое удовлетворяет определению шаблона , заданному для свойств проекта.
Нажмите кнопку "Добавить".
Visual Studio создает тестовый файл с кодом по умолчанию:
import unittest class Test_test1(unittest.TestCase): def test_A(self): self.fail("Not implemented") if __name__ == '__main__': unittest.main()Этот код импортирует стандартный
unittestмодуль и извлекает тестовый класс изunittest.TestCaseметода. При непосредственном запуске скрипта этот код также вызывает функциюunittest.main().
При добавлении новых тестовых файлов Visual Studio делает их доступными в обозревателе тестов.
Просмотр тестов с помощью обозревателя тестов
После настройки платформы тестирования и файлов тестов Visual Studio ищет тесты и отображает их в обозревателе тестов.
Ниже приведены некоторые способы работы с обозревателем тестов.
Откройте окно обозревателя тестов, выбравобозреватель тестов>.
Когда откроется окно обозревателя тестов , используйте сочетание клавиш CTRL+R, А для активации тестового обнаружения.
Дважды щелкните тест в обозревателе тестов , чтобы открыть соответствующий исходный файл в редакторе:
Упорядочение представления тестов с помощью параметра Group By на панели инструментов:
Отфильтруйте тесты по имени, введя текст в поле поиска :
Выполните тесты и просмотрите состояние тестового запуска, как описано в следующем разделе.
Дополнительные сведения о модуле unittest и написании тестов см. в документации по Python.
Выполнение тестов с помощью обозревателя тестов
В обозревателе тестов можно выполнять тесты несколькими способами:
- Выберите "Запустить все" (тесты в представлении), чтобы выполнить все тесты, отображаемые в текущем представлении на основе параметров фильтра.
- Используйте команды в меню «Запуск» для выполнения неудачных, пройденных или тестов, которые не выполнялись, группой.
- Выберите один или несколько тестов, а затем щелкните правой кнопкой мыши и выберите параметр "Выполнить выбранные тесты ".
Visual Studio запускает тесты в фоновом режиме. Обозреватель тестов обновляет состояние каждого теста по мере завершения:
При прохождении тестов отображается зеленый галок и время завершения тестового выполнения:
Неудачные тесты показывают красный X со ссылкой на выходные данные консоли и
unittestвыходные данные из тестового запуска:
Проверка тестов с помощью отладчика
Модульные тесты — это фрагменты кода, которые подвергаются ошибкам, как и любой другой код, и иногда их необходимо запускать в отладчике. В отладчике Visual Studio можно задать точки останова, проверить переменные и выполнить пошаговое выполнение кода. Visual Studio также предоставляет средства диагностики для модульных тестов.
Ознакомьтесь с этими пунктами о проверке тестов с помощью отладчика Visual Studio:
По умолчанию тестовая отладка использует отладчик debugpy для Visual Studio 2019 версии 16.5 и более поздних версий. Некоторые более ранние версии Visual Studio используют отладчик ptvsd 4 . Если вы используете более раннюю версию Visual Studio и предпочитаете отладчик ptvsd 3, выберите параметр "Использовать устаревший отладчик" в разделе"Параметры>отладки>>.
Чтобы начать отладку, задайте начальную точку останова в коде, а затем щелкните правой кнопкой мыши тест (или выбор) в обозревателе тестов и выберите "Отладка выбранных тестов". Visual Studio запускает отладчик Python так же, как и для кода приложения.
Если вы предпочитаете, вы можете использовать Анализ покрытия кода для выбранных тестов. Дополнительные сведения см. в статье Использование покрытия кода для определения объема протестированного кода.