Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модульные тесты — это фрагменты кода, которые тестируют другие единицы кода в приложении, обычно изолированные функции, классы и т. д. Когда приложение проходит все модульные тесты, вы можете быть уверены в правильности по крайней мере низкоуровневой функциональности программы.
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 так же, как и для кода приложения.
Если вы предпочитаете, вы можете использовать Анализ покрытия кода для выбранных тестов. Дополнительные сведения см. в статье Использование покрытия кода для определения объема протестированного кода.