Как запустить тесты в visual studio code
В этом руководстве показано, как автоматизировать модульное тестирование путем добавления тестового проекта в решение.
Предварительные требования
Создание проекта модульного теста
Модульные тесты обеспечивают автоматическое тестирование программного обеспечения во время разработки и публикации. В этом руководстве используется платформа тестирования MSTest. MSTest — это одна из трех доступных для выбора платформ тестирования. Другими являются xUnit и nUnit.
Запустите Visual Studio Code.
Создайте проект модульного теста с именем StringLibraryTest.
Шаблон проекта создает файл UnitTest1.cs со следующим кодом:
Исходный код, созданный шаблоном модульного теста, выполняет следующие действия.
- Он импортирует пространство имен Microsoft.VisualStudio.TestTools.UnitTesting, которое содержит типы, используемые для модульного тестирования.
- Он применяет атрибут TestClassAttribute к классу UnitTest1 .
- Он применяет атрибут TestMethodAttribute для определения TestMethod1 .
При вызове модульного теста автоматически выполняются все методы теста, помеченные атрибутом [TestMethod], в тестовом классе, помеченном атрибутом [TestClass].
Добавьте тестовый проект в решение.
Добавление ссылки на проект
Чтобы тестовый проект работал с классом StringLibrary , добавьте в проект StringLibraryTest ссылку на проект StringLibrary .
Выполните следующую команду:
Добавление и выполнение методов модульного теста
При вызове модульного теста Visual Studio выполняет каждый метод, помеченный атрибутом TestMethodAttribute, в классе, помеченном атрибутом TestClassAttribute. Метод теста завершается, когда происходит первый сбой или когда все тесты, содержащиеся в методе, будут успешно выполнены.
В самых распространенных тестах вызываются члены класса Assert. Многие методы утверждения (Assert) принимают по крайней мере два параметра, из которых один представляет ожидаемый результат теста, а второй — фактический результат теста. Наиболее популярные из этих методов класса Assert перечислены в следующей таблице:
Методы утверждения | Функция |
---|---|
Assert.AreEqual | Проверяет равенство двух значений или объектов. Утверждение не выполняется, если значения или объекты не равны. |
Assert.AreSame | Проверяет, что две объектные переменные ссылаются на один и тот же объект. Утверждение не выполняется, если переменные ссылаются на разные объекты. |
Assert.IsFalse | Проверяет, что условие имеет значение false . Утверждение не выполняется, если условие имеет значение true . |
Assert.IsNotNull | Проверяет, что объект не имеет значение null . Утверждение не выполняется, если объект является null . |
Вы можете также использовать метод Assert.ThrowsException в методе теста, чтобы указать тип исключения, которое он должен создавать. Такой тест считается не выполненным, если заявленное исключение не было создано.
Для тестирования метода StringLibrary.StartsWithUpper необходимо предоставить несколько строк, которые начинаются с символов верхнего регистра. Предполагается, что в этих случаях метод возвратит true , поэтому можно вызвать метод Assert.IsTrue. Представьте также несколько строк, которые не начинаются с символов верхнего регистра. Предполагается, что в этих случаях метод возвратит false , поэтому можно вызвать метод Assert.IsFalse.
Так как метод библиотеки обрабатывает строки, необходимо также убедиться, что он обрабатывает пустую строку ( String.Empty ), а также строку null . Пустая строка не содержит символов, а ее свойство Length равно 0. Строка null является неинициализированной строкой. Метод StartsWithUpper можно вызвать напрямую как статический метод и передать ему один аргумент типа String. Или метод StartsWithUpper можно вызвать как метод расширения для переменной string , которой назначено значение null .
Создание методов теста:
Откройте файл StringLibraryTest/UnitTest1.cs и замените все его содержимое следующим кодом:
Тест на символы верхнего регистра в методе TestStartsWithUpper включает заглавную греческую букву "альфа" (U+0391) и заглавную кириллическую букву "М" (U+041C). Тест на символы нижнего регистра в методе TestDoesNotStartWithUpper включает строчную греческую букву "альфа" (U+03B1) и строчную кириллическую букву "г" (U+0433).
В выходных данных терминала показано, что все тесты пройдены.
Обработка сбоев теста
Выполняя разработку на основе тестирования (TDD), вы сначала пишете тесты, и они завершаются сбоем при первом запуске. Затем вы добавляете код в приложение, и тест успешно выполняется. В рамках этого учебника вы создали тест после написания кода приложения для его проверки, поэтому тест был пройден. Чтобы проверить, завершается ли тест ошибкой, как и ожидается, добавьте недопустимое значение во входные данные теста.
Измените массив words в методе TestDoesNotStartWithUpper , включив в него строку "Error".
Удалите строку "Error", которую вы добавили на шаге 1. Еще раз запустите тест. Теперь тесты будут пройдены.
Тестирование версии выпуска для библиотеки
Теперь, когда все тесты пройдены при выполнении сборки в режиме отладки, следует запустить все тесты еще раз, теперь уже для сборки библиотеки в режиме выпуска. Некоторые факторы, например оптимизации компилятора, иногда могут вызывать разное поведение сборки в режимах отладки и выпуска.
Запустите тесты с конфигурацией сборки "Выпуск".
Все тесты будут пройдены.
Отладка тестов
Visual Studio Code запускает тестовый проект с присоединенным отладчиком. Выполнение будет прервано в любой точке останова, добавленной в тестовый проект или базовый код библиотеки.
Дополнительные ресурсы
Следующие шаги
В этом руководстве вы выполнили модульное тестирование библиотеки классов. Чтобы сделать библиотеку доступной другим пользователям, опубликуйте ее в NuGet в качестве пакета. Чтобы узнать, как это делать, следуйте указаниям в руководстве по NuGet:
Если библиотека опубликована как пакет NuGet, ее могут устанавливать и использовать другие пользователи. Чтобы узнать, как это делать, следуйте указаниям в руководстве по NuGet:
Библиотеку не нужно распространять как пакет. Ее можно объединить с консольным приложением, где она используется. Чтобы узнать, как опубликовать консольное приложение, ознакомьтесь с предыдущим руководством в этой серии:
В этом руководстве показано, как автоматизировать модульное тестирование путем добавления тестового проекта в решение.
Предварительные требования
Создание проекта модульного теста
Модульные тесты обеспечивают автоматическое тестирование программного обеспечения во время разработки и публикации. В этом руководстве используется платформа тестирования MSTest. MSTest — это одна из трех доступных для выбора платформ тестирования. Другими являются xUnit и nUnit.
Запустите Visual Studio Code.
Создайте проект модульного теста с именем StringLibraryTest.
Шаблон проекта создает файл UnitTest1.cs со следующим кодом:
Исходный код, созданный шаблоном модульного теста, выполняет следующие действия.
- Он импортирует пространство имен Microsoft.VisualStudio.TestTools.UnitTesting, которое содержит типы, используемые для модульного тестирования.
- Он применяет атрибут TestClassAttribute к классу UnitTest1 .
- Он применяет атрибут TestMethodAttribute для определения TestMethod1 .
При запуске модульного теста автоматически выполняются все методы теста, помеченные атрибутом [TestMethod], в тестовом классе, помеченном атрибутом [TestClass].
Добавьте тестовый проект в решение.
Добавление ссылки на проект
Чтобы тестовый проект работал с классом StringLibrary , добавьте в проект StringLibraryTest ссылку на проект StringLibrary .
Выполните следующую команду:
Добавление и выполнение методов модульного теста
При запуске модульного теста Visual Studio выполняет каждый метод, помеченный атрибутом TestMethodAttribute, в классе, помеченном атрибутом TestClassAttribute. Метод теста завершается, когда происходит первый сбой или когда все тесты, содержащиеся в методе, будут успешно выполнены.
В самых распространенных тестах вызываются члены класса Assert. Многие методы утверждения (Assert) принимают по крайней мере два параметра, из которых один представляет ожидаемый результат теста, а второй — фактический результат теста. Наиболее популярные из этих методов класса Assert перечислены в следующей таблице:
Методы утверждения | Функция |
---|---|
Assert.AreEqual | Проверяет равенство двух значений или объектов. Утверждение не выполняется, если значения или объекты не равны. |
Assert.AreSame | Проверяет, что две объектные переменные ссылаются на один и тот же объект. Утверждение не выполняется, если переменные ссылаются на разные объекты. |
Assert.IsFalse | Проверяет, что условие имеет значение false . Утверждение не выполняется, если условие имеет значение true . |
Assert.IsNotNull | Проверяет, что объект не имеет значение null . Утверждение не выполняется, если объект является null . |
Вы можете также использовать метод Assert.ThrowsException в методе теста, чтобы указать тип исключения, которое он должен создавать. Такой тест считается не выполненным, если заявленное исключение не было создано.
Для тестирования метода StringLibrary.StartsWithUpper необходимо предоставить несколько строк, которые начинаются с символов верхнего регистра. Предполагается, что в этих случаях метод возвратит true , поэтому можно вызвать метод Assert.IsTrue. Представьте также несколько строк, которые не начинаются с символов верхнего регистра. Предполагается, что в этих случаях метод возвратит false , поэтому можно вызвать метод Assert.IsFalse.
Так как метод библиотеки обрабатывает строки, необходимо также убедиться, что он обрабатывает пустую строку ( String.Empty ), а также строку null . Пустая строка не содержит символов, а ее свойство Length равно 0. Строка null является неинициализированной строкой. Метод StartsWithUpper можно вызвать напрямую как статический метод и передать ему один аргумент типа String. Или метод StartsWithUpper можно вызвать как метод расширения для переменной string , которой назначено значение null .
Создание методов теста:
Откройте файл StringLibraryTest/UnitTest1.cs и замените все его содержимое следующим кодом:
Тест на символы верхнего регистра в методе TestStartsWithUpper включает заглавную греческую букву "альфа" (U+0391) и заглавную кириллическую букву "М" (U+041C). Тест на символы нижнего регистра в методе TestDoesNotStartWithUpper включает строчную греческую букву "альфа" (U+03B1) и строчную кириллическую букву "г" (U+0433).
В выходных данных терминала показано, что все тесты пройдены.
Обработка сбоев теста
Выполняя разработку на основе тестирования (TDD), вы сначала пишете тесты, и они завершаются сбоем при первом запуске. Затем вы добавляете код в приложение, и тест успешно выполняется. В рамках этого учебника вы создали тест после написания кода приложения для его проверки, поэтому тест был пройден. Чтобы проверить, завершается ли тест ошибкой, как и ожидается, добавьте недопустимое значение во входные данные теста.
Измените массив words в методе TestDoesNotStartWithUpper , включив в него строку "Error".
Удалите строку "Error", которую вы добавили на шаге 1. Еще раз запустите тест. Теперь тесты будут пройдены.
Тестирование версии выпуска для библиотеки
Теперь, когда все тесты пройдены при выполнении сборки в режиме отладки, следует запустить все тесты еще раз, теперь уже для сборки библиотеки в режиме выпуска. Некоторые факторы, например оптимизации компилятора, иногда могут вызывать разное поведение сборки в режимах отладки и выпуска.
Запустите тесты с конфигурацией сборки "Выпуск".
Все тесты будут пройдены.
Отладка тестов
Visual Studio Code запускает тестовый проект с присоединенным отладчиком. Выполнение будет прервано в любой точке останова, добавленной в тестовый проект или базовый код библиотеки.
Дополнительные ресурсы
Следующие шаги
В этом руководстве вы выполнили модульное тестирование библиотеки классов. Чтобы сделать библиотеку доступной другим пользователям, опубликуйте ее в NuGet в качестве пакета. Чтобы узнать, как это делать, следуйте указаниям в руководстве по NuGet:
Если библиотека опубликована как пакет NuGet, ее могут устанавливать и использовать другие пользователи. Чтобы узнать, как это делать, следуйте указаниям в руководстве по NuGet:
Библиотеку не нужно распространять как пакет. Ее можно объединить с консольным приложением, где она используется. Чтобы узнать, как опубликовать консольное приложение, ознакомьтесь с предыдущим руководством в этой серии:
В 2016-м году компания Microsoft представила миру свой новый редактор программного кода. В отличие от старшей сестры — полноценной IDE Visual Studio — VS Code получился куда более компактным и легковесным решением. Он разработан как кроссплатформенное ПО и может быть успешно установлен в системах Windows, Linux и macOS.
Бесплатность Visual Studio Code абсолютно не мешает ему обладать весьма богатым современным функционалом. VS Code имеет встроенный отладчик, позволяет работать с системами контроля версий, обеспечивает интеллектуальную подсветку синтаксиса, а также поддерживает целый ряд популярных языков программирования.
И хоть, за годы своего существования, VSCode зарекомендовал себя, в основном, как продукт для веб-разработки, в 2018 году появилось расширение " Python ", которое дало программистам многочисленные возможности для редактирования, отладки и тестирования кода на нашем любимом языке.
Установка VSCode
Поистине смешные системные требования Visual Studio Code обязательно порадуют владельцев старых машин.
Для полноценной работы редактору требуется всего лишь 1 ГБ оперативной памяти и процессор с частотой от 1.6 ГГц.
Такое сочетание лёгкости и функциональности действительно подкупает, а отсутствие в VS Code каких-либо "лагов" и "фризов" делают разработку ещё более приятным и увлекательным занятием.
Установка редактора никуда не отходит от данной парадигмы и тоже является весьма простым и понятным процессом.
Windows
Сначала нужно скачать с официального сайта установочный файл небольшого размера, а затем установить сам ВиЭс код, следуя подсказкам от мастера установки.
Linux
На сайте программы можно изучить способы инсталляции редактора на разные Linux-дистрибутивы, но здесь рассмотрим процесс установки для самого популярного из них — Ubuntu.
Установить VSCode можно несколькими способами:
Способ №1 : Самый простой способ — воспользоваться менеджером установки "Ubuntu Software".
Откройте "Ubuntu Software" -> введите в поиск "VSCode" -> выберите первую строку и нажмите "Install"sudo apt install ./<file>.deb
О других способах установки читайте на странице официальной документации в разделе " Setup ";
macOS
Алгоритм установки редактора внутри яблочной операционной системы также не представляет собой ничего сложного:
- Сначала нужно скачать Visual Studio Code с официального сайта.
- Затем открыть список загрузок браузера и найти там VSCode-Darwin-Stable.zip .
- Нажмите на иконку увеличительного стекла, чтобы открыть архив.
- Перетащите Visual Studio Code.app в папку приложений, сделав ее доступной на панели запуска.
- Щёлкните правой кнопкой мыши по значку и выберете команду " Оставить в Dock ".
Настройка под Python
Установка расширения "Python"
Для начала работы с Python, нужно перейти на вкладку Extensions , что находится на панели слева, либо нажать Ctrl + Shift + X . Сделав это, набираем в строке поиска " Python ".
Для начала работы с Python, установите расширение от Microsoft — "Python".VS Code поддерживает, как вторую, так и третью версию языка, однако python интерпретатор на свою машину вам придётся поставить самостоятельно.
Если вы новичок и только начинаете работу с Python или же не имеете каких-то особых указаний на этот счёт, то лучшим выбором станет именно актуальная третья версия.
Вот краткий список основных возможностей расширения "Python":
- Автодополнение кода.
- Отладка.
- Поддержка сниппетов.
- Написание и проведение тестов.
- Использование менеджера пакетов Conda.
- Возможность создания виртуальных сред.
- Поддержка интерактивных вычисления на Jupyter Notebooks.
Выбор версии интерпретатора Python
После от вас потребуется совершить выбор версии интерпретатора внутри самого редактора (обычно VS code знает, где он расположен). Для этого:
- Откройте командную строку VSCode (Command Palette) комбинацией Ctrl + Shift + P .
- Начинайте печатать " Python: Select Interpreter ";
- После, выберите нужную версию интерпретатора.
Также выбрать версию можно в панели активности в левом нижнем углу:
Выбор версии Python-интерпретатора в панели активности VS CodeЕсли вы хотите использовать pipenv в своем проекте:
- Установите pipenv командой pip install pipenv (или pip3 install pipenv );
- Выполните команду pipenv install ;
- Откройте " Command Palette ", напечатайте " Python: Select Interpreter " и из списка выберите нужную версию интерпретатор.
Работа в VS Code
Запуск редактора
Как и другие современные редакторы и среды разработки, VS Code фиксирует состояние на момент закрытия программы. При следующем запуске, он открывается в том же самом виде, в котором существовал до завершения работы.
Так как VSCode, в первую очередь — редактор, а не полновесная среда разработки, здесь нет особой привязки к проекту. Вы можете сходу создавать, открывать и редактировать нужные вам файлы. Достаточно, после запуска, нажать Open File или New File и можно начинать работу.
Интерфейс
Интерфейс программы разрабатывался в стремлении сделать его как можно более простым и интуитивно понятным. Дизайнеры постарались, как максимизировать пространство для редактора, так и оставить достаточно места для отображения проводника по вашему проекту.
Весь UI VSCode разделился, таким образом, на шесть областей:
- Область редактора — основная область для написания и редактирования вашего кода.
- Боковая панель — здесь содержатся различные представления (например проводник).
- Строка состояния — визуализирует рабочую информацию об открытом в данный момент файле.
- Командная панель — классическая главная панель с вкладками file, edit, go, run и так далее.
- Панель активности — область в крайнем левом углу, где находятся важные вспомогательные вкладки, вроде контроля версий, дебаггера и магазина расширений.
- Мультипанель — панель на которой располагается вывод отладку, информация об ошибках и предупреждениях, а также встроенный в VS Code терминал.
Запуск Python-кода (run)
Выполнить код можно несколькими способами. Самый простой — комбинацией Ctrl + Alt + N .
Для запуска python-кода выполните комбинацию "Ctrl + Alt + N"Также можно вызвать скрипт контекстным меню, выбрав строку " Run Python File in Terminal ".
Или нажав иконку " Run " в правом верхнем углу.
Иконка "Run" в правом верхнем углу запустит Python-код на выполнениеОтладка (debugger)
Возможность полноценной отладки — сильная сторона редактора. Чтобы перейти в режим отладки, нужно установить точку останова и нажать F5 .
Для перехода в режим отладки, установите breakpoint и нажмите "F5"Вся информация о текущем состоянии будет выводиться на панель дебаггера.
Слева откроется панель дебаггера с информацией о состоянии переменных (Variables), отслеживаемых переменных (Watch) и стеке вызова (Call stack).
Сверху расположена панель инструментов дебаггера.
Рассмотрим команды (слева направо):
- continue ( F5) — перемещает между breakpoint-ами;
- step over ( F10) — построчное (пошаговое) перемещение;
- step into ( F11) — построчное (пошаговое) перемещение c заходом в каждую вызываемую функцию;
- step out ( Shift + F11) — работает противоположно step into — выходит из вызванной функции, если в данный момент вы находитесь внутри неё. Далее работает как continue .
- restart ( Ctrl + Shift + F5) — начинаем отладку с начала.
- stop ( Shift + F5) — остановка и выход из режима отладки.
Чаще всего для отладки используются continue ( F5 ) и step over ( F10 ).
С отладкой разобрались 👌.
Тестирование (testing)
С поддержкой тестов у VS Code тоже всё в порядке, однако, по умолчанию тестирование отключено. Для его активации нужна небольшая настройка.
Сначала следует нажать комбинацию клавиш Ctrl + Shift + P и в так называемой палитре команд выбрать Python: Configure Tests .
Для выбора фреймворка для тестов, выполните комбинацию "Ctrl + Shift + P" и наберите "Python: Configure Tests"Редактор предложит вам определить фреймворк (мы выбрали "pytest") и папку, содержащую тесты (мы выбрали ". Root directory").
Создадим новый файл с тестами ( test_app.py ) и запустим его, кликнув правой кнопкой мыши на этом файле и выбрав пункт " Run Current Test File ".
Также тесты можно запускать по нажатию на кнопку Run Tests в нижней строке состоянияЗапуск тестов в VSCode с использованием фреймворка pytest.
Чтобы увидеть результаты, необходимо открыть вкладку Output на панели, и в выпадающем меню выбрать пункт PythonTestLog .
Как мы видим, первый тест прошел успешно, а второй провалился.
Для удобства работы с тестами, установим расширение " Python Test Explorer for Visual Studio Code ".
Расширение для VSCode "Python Test Explorer for Visual Studio Code"Теперь информацию по тестам можно посмотрев, кликнув на левой панели " иконку с колбой ", предварительно запустив тесты.
Вкладка "test" (иконка с колбой в панели слева) откроет удобный проводник для запуска тестов и просмотра их состояния.Для начала работы с системами контроля версий обратимся к вкладке Source Control , что находится на панели активности слева (или Ctrl + Shift + G ).
По умолчанию VS Code дружит с Git и GitHub
Поддержку других систем возможно настроить самостоятельно, установив соответствующие расширения.
Чтобы связать проект с github (или gitlab), сперва необходимо скачать на ваш ПК git (если ещё не скачан). VSCode автоматически определит его местоположение, и затем у вас появится возможность синхронизации.
Для работы с git, зайдите в меню слева "Source Control"Все основные и необходимые операции для контроля версий будут находиться прямиком внутри редактора: коммитить, пуллить, пушить, создавать бранчи и просматривать изменения вы можете, не выходя из VisualStudioCode.
Все необходимые команды для работы в git находятся в меню панели "Source Control" (3 точки)А для удобного просмотра изменений в git, советую установить расширение " Git Graph ". После его установки, на панели " Source Control " появится новая кнопка, которая отобразит граф состояния (git log).
Используйте Visual Studio, чтобы определить и запустить модульные тесты для обеспечения работоспособности кода, нужного объема протестированного кода, а также для обнаружения ошибок и сбоев, прежде чем с ними столкнутся клиенты. Выполняйте модульные тесты регулярно, чтобы обеспечить правильную работу вашего кода.
Создание модульных тестов.
В этом разделе описывается создание проекта модульного теста.
Откройте проект, который хотите протестировать в Visual Studio.
Выберите узел решения в обозревателе решений. Затем в верхней строке меню выберите Файл > Добавить > Новый проект.
В диалоговом окне нового проекта найдите проект модульного теста, который хотите использовать.
Разверните узел Установлено, выберите язык, который вы хотите использовать для своего тестового проекта, после чего выберите Тест.
Нажмите Далее, выберите имя для тестового проекта и нажмите Создать.
Выберите имя для тестового проекта, например HelloWorldTests, и нажмите OK.
Проект добавляется в решение.
В проекте модульного тестирования добавьте ссылку на проект, который вы хотите протестировать, щелкнув правой кнопкой мыши Ссылки или Зависимости, после чего выбрав Добавить ссылку или Добавить ссылку на проект.
Выберите проект, содержащий код, который будет тестироваться, и нажмите OK.
Добавьте код в метод модульных тестов.
Запуск модульных тестов
Откройте обозреватель тестов, выбрав Тест > Обозреватель тестов в верхней строке меню (или нажмите клавиши CTRL + E, T).
Откройте Обозреватель тестов, выбрав Тест > Windows > Обозреватель тестов в верхней строке меню.
Запустите модульные тесты, нажав Запустить все (или нажмите клавиши CTRL + R, V).
После завершения зеленый флажок указывает, что тест пройден. Красный значок "x" указывает на сбой теста.
Используйте обозреватель тестов для запуска модульных тестов из встроенной платформы тестирования (MSTest) или сторонней платформы тестирования. Вы можете группировать тесты по категориям, фильтровать список тестов, а также создавать, сохранять и запускать списки воспроизведения тестов. Кроме того, с его помощью можно выполнять отладку тестов и анализировать производительность тестов и покрытие кода.
Просмотр результатов динамического модульного тестирования (Visual Studio Enterprise)
Если вы используете платформу тестирования MSTest, xUnit или NUnit в Visual Studio 2017 или более поздней версии, можно просмотреть динамические результаты модульных тестов.
Включите Live Unit Testing в меню Тест, выбрав Тест > Live Unit Testing > Запустить.
Вы можете просматривать результаты тестов в окне редактора кода по мере написания и редактирования кода.
Щелкните индикатор результатов теста для просмотра дополнительных сведений, таких как имена тестов для этого метода.
Дополнительные сведения о Live Unit Testing см. в разделе Live Unit Testing.
Использование сторонней платформы тестирования
Вы можете запускать модульные тесты в Visual Studio с помощью сторонних тестовых платформ, таких как NUnit, Boost или Google C++ Testing Framework, в зависимости от вашего языка программирования. Чтобы использовать стороннюю платформу тестирования, выполните следующие действия.
Используйте диспетчер пакетов NuGet, чтобы установить пакет NuGet для выбранной платформы.
(C++) В Visual Studio 2017 и более поздних версиях уже включены некоторые платформы, такие как Google C++ Testing Framework. Дополнительные сведения см. в статье Написание модульных тестов для C/C++ в Visual Studio.
Добавление проекта модульного тестирования:
Откройте решение, содержащее код, который нужно протестировать.
В обозревателе решений щелкните решение правой кнопкой мыши и выберите Добавить > Создать проект.
Выберите шаблон проекта модульного теста.
Для того примера — NUnit
Щелкните Далее, назовите проект и нажмите кнопку Создать.
Задайте проекту имя и нажмите ОК, чтобы создать его.
Шаблон проекта содержит ссылки на пакеты NuGet для NUnit и NUnit3TestAdapter.
Добавьте ссылку из проекта тестирования на проект, содержащий код, который вы хотите протестировать.
В обозревателе решений щелкните проект правой кнопкой мыши и выберите Добавить > Ссылка. (Ссылку также можно добавить из контекстного меню узла Ссылки или Зависимости.)
Добавьте код в метод теста.
Запустите тест в обозревателе тестов или щелкните правой кнопкой мыши в коде теста и выберите Запустить тесты (или нажмите клавиши CTRL + R, T).
VS Code от Microsoft – легкий и удобный редактор кода, доступный на всех платформах и невероятно гибкий. Это отличный выбор для программирования на Python.
В этой статье мы рассмотрим способы установки и настройки максимально эффективной рабочей среды для разработки.
Статья предназначена для программистов, уже имеющих опыт работы с Python и установивших на свою рабочую машину интерпретатор этого языка программирования (Python 2.7, Python 3.6/3.7, Anaconda или другой дистрибутив).
Установка Python – дело несложное: здесь вы найдете подробное пошаговое руководство для всех популярных ОС. Помните, что в разных операционных системах интерфейс VS Code может немного различаться.
Установка и настройка Visual Studio Code для разработки на Python
Сразу же отметим, что VS Code не имеет практически ничего общего с его знаменитым тезкой Visual Studio.
Редактор очень легко установить на любую платформу: на официальном сайте есть подробные инструкции для Windows, Mac и Linux.
Продукт ежемесячно обновляется и улучшается. В него из коробки встроена поддержка нескольких языков и удобная модель расширения. Пользовательский интерфейс предельно прост и понятен.
VS Code + Python
С 2018 года есть расширение для Python. Наблюдать за развитием отношений этой пары можно в блоге Microsoft.
Основные возможности редактора:
- Поддержка Python 3.4 и выше, а также Python 2.7
- Автоматическое дополнение кода с помощью IntelliSense
- Автоматическое использование conda и виртуальных сред
- Редактирование кода в средах Jupyter и Jupyter Notebooks
А вот пара полезных подборок для прокачки Python-скиллов:
В редакторе есть и полезные фичи, не связанные напрямую с языком:
-
для Atom, Sublime Text, Emacs, Vim, PyCharm и множества других редакторов
- Настраиваемые темы оформления для множества языков, включая русский
И еще несколько крутых возможностей для полного счастья:
-
– множество полезных функций Git прямо в редакторе, включая аннотации blame и просмотр репозитория.
- Автосохранение (File - Auto Save) и удобная настройка его задержки. между различными устройствами с помощью GitHub.
- Удобная работа с Docker.
Чтобы найти и установить необходимые расширения и темы, нажмите на иконку Расширения на левой панели. Можно искать по ключевым словам и сортировать результаты поиска.
Найдите расширение Python и установите его, чтобы продолжить настройку редактора.
Файлы конфигурации
В Visual Studio Code вы легко можете настроить все под себя. Здесь есть параметры пользователя, которые являются глобальными, и параметры рабочей области – локальные для конкретных папок или проектов. Локальные настройки сохраняются в виде .json-файлов в папке .vscode.
Новый проект на Python
Чтобы открыть новый файл, нужно зайти в меню Файл и выбрать пункт Создать или нажать горячую комбинацию клавиш Ctrl+N .
Еще в редакторе есть полезная палитра команд, которую можно вызвать сочетанием Ctrl+Shift+P . Для создания нового файла введите в появившемся поле File: New File и нажмите Enter .
Какой бы способ вы ни выбрали, перед вами должно открыться вот такое окно:
Здесь уже можно вводить код вашей программы.
Начинаем кодить
Для демонстрации возможностей редактора напишем "Решето Эратосфена" – известный алгоритм для нахождения простых чисел до некоторого предела. Начнем кодить:
На экране это будет выглядеть примерно так:
Подождите, что-то не так. Почему-то VS Code не выделяет ключевые слова языка, не дополняет, не форматирует и вообще ничего полезного не делает. Зачем он вообще такой нужен?
Без паники! Просто сейчас редактор не знает, с каким файлом он имеет дело. Смотрите, у него еще нет названия и расширения – только какое-то неопределенное Untitled-1. А в правом нижнем углу написано Plain Text (простой текст).
Установка Python плагина уже произведена, теперь его нужно активировать. Для этого достаточно просто сохранить файл с нужным расширением. Для этого у нас опять же три способа:
- меню: Файл - Сохранить
- горячая комбинация: Ctrl+S
- палитра команд: File: Save File
Дайте файлу имя sieve.py.
Теперь редактор понял, что имеет дело с кодом на Python, и исправился:
Так гораздо лучше! В правом нижнем углу появилась надпись Python, значит все работает правильно.
Если на вашем компьютере установлено несколько интерпретаторов языка (Python 2.7, Python 3.x или Anaconda), вы можете выбирать нужный. Для этого кликните на индикаторе языка (внизу в левой части экрана) или наберите в палитре команд Python: Select Interpreter .
По умолчанию VS Code поддерживает форматирование с использованием pep8, но вы можете выбрать black или yapf, если хотите.
Допишем код алгоритма:
Если вы будете вводить его вручную (без copy-paste), то сможете увидеть IntelliSense редактора в действии.
VS Code автоматически делает отступы перед операторами for и if , добавляет закрывающие скобки и предлагает варианты завершения слов.
Запуск программы
Чтобы запустить готовую программу, нам даже не нужно выходить из редактора! Просто сохраните файл, вызовите правой кнопкой мыши контекстное меню и выберите в нем пункт Выполнить файл в консоли.
Теперь, когда код завершен, его можно запустить. Для этого не нужно выходить из редактора: Visual Studio Code может запускать эту программу непосредственно в Редакторе. Сохраните файл (с помощью Ctrl+S ), затем щелкните правой кнопкой мыши в окне редактора и выберите пункт Запустить файл Python в терминале.
В нижней части окна должна появиться панель терминала с результатом работы программы.
Линтинг кода
- flake8
- mypy
- pydocstyle
- pep8
- prospector
- pyllama
- bandit
Подробные сведения о настройке каждого из них вы можете найти здесь.
Обратите внимание, что линтер настраивается для конкретной рабочей области, а не глобально.
Редактирование существующего проекта
Итак, мы научились создавать новые файлы. Это здорово, но все же большую часть времени вам придется работать с уже существующими проектами, которые состоят из множества отдельных файлов и папок.
С редактором можно работать прямо из консоли, открывая и создавая файлы простой командой code filename.py .
Посмотрим, на что способен VS Code на примере уже готового проекта. Это библиотека для анализа уравнений, основанная на "алгоритме маневровой станции" (shunting-yard algorithm) Дийкстры. Вы можете клонировать этот репозиторий, чтобы начать работу.
Открыть созданную локально папку в редакторе можно из терминала:
VS Code умеет работать с различными средами: virtualenv, pipenv или conda.
Также вы можете открыть папку прямо из интерфейса редактора:
- меню: Файл - Открыть папку
- горячие клавиши: Ctrl+K , Ctrl+O
- из палитры команд: File: Open Folder
Вот так выглядит открытый проект:
По умолчанию при открытии папки VS Code также открывает файлы, с которыми вы работали в последний раз. Это поведение можно изменить.
Теперь вы можете открывать, редактировать, запускать и отлаживать все файлы проекта, перечисленные в левой панели. Над проводником отображаются все файлы, с которыми вы в данный момент работаете.
Тестирование
Грамотное программирование на Python помимо собственно написания кода включает также его тестирование.
Visual Studio Code умеет автоматически распознавать тесты в unittest, pytest или Nose. В нашем проекте есть модульный тест, который можно использовать для примера.
Чтобы запустить существующие тесты, из любого файла Python вызовите правой кнопкой мыши контекстное меню и выберите пункт Запустить текущий тестовый файл.
Нужно будет указать используемый для тестирования фреймворк, путь поиска и шаблон для имени файлов тестов. Эти настройки сохраняются как параметры рабочей области в локальном файле .vscode/settings.json. Для нашего проекта нужно выбрать unittest, текущую папку и шаблон *_test.py.
Теперь можно запустить все тесты, кликнув на Run Tests в строке состояния или из палитры команд.
Также тесты можно выполнять по отдельности, что позволяет экономить много времени, работая только с неудачными методами.
Результаты тестов отображаются во вкладке Output (раздел Python Test Log выпадающего меню).
Посмотрите также:
Отладка кода
Несмотря на то, что VS Code – это просто редактор кода, а не полноценная IDE, он позволяет отлаживать код Python прямо в рабочей области. У него есть много функций, которые должны быть у хорошего отладчика:
- Автоматическое отслеживание переменных
- Отслеживание выражений
- Точки прерывания
- Инспекция стека вызовов
Все эти данные можно найти во вкладке Debug левой панели.
Отладчик может управлять приложениями Python, запущенными во встроенной консоли или внешнем терминале. Он может подключаться к уже запущенным экземплярам Python и даже отлаживать приложения Django и Flask.
Отладить программу на Python так же просто, как запустить отладчик с помощью F5 . Используйте F10 и F11 для перехода к следующей функции и для захода в текущую функцию. Shift+F5 – выход из отладчика. Точки останова задаются с помощью клавиши F9 или щелчком мыши в левом поле окна редактора.
Перед началом отладки более сложных проектов, включая приложения Django или Flask, необходимо настроить и выбрать конфигурацию отладки. Сделать это очень просто. Во вкладке Debug найдите раскрывающееся меню Configuration и нажмите Add Configuration:
VS Code создаст и откроет файл .vscode/launch.json, в котором можно настроить конфигурации Python, а также отладку приложений.
Вы даже можете выполнять удаленную отладку и дебажить шаблоны Jinja и Django. Закройте launch.json и выберите нужную конфигурацию приложения из раскрывающегося списка.
Посмотрите также:
Интеграция с Git
В VS Code прямо из коробки есть встроенная поддержка управления версиями. По умолчанию подключен Git и GitHub, но вы можете установить поддержку других систем. Все работа происходит во вкладке Source Control левого меню:
Если в проекте есть папка .git, весь спектр функций Git/GitHub включается автоматически. Вы можете:
Все эти функции доступны прямо из пользовательского интерфейса:
VS Code также распознает изменения, внесенные вне редактора.
Visual Studio Code + Python = довольный разработчик
Visual Studio Code – один из самых крутых редакторов кода и замечательный инструмент для разработки. Редактор из коробки предлагает множество полезных возможностей и гибко подстраивается под все ваши потребности. Программирование на Python становится проще и эффективнее.
А какой редактор (или полноценную IDE) для разработки на Python используете вы?
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
Модульное тестирование в Visual Studio
Создание проекта программы, модули которой будут тестироваться
Разработаем проект содержащий класс, который вычисляет площадь прямоугольника по длине двух его сторон.
Class1 переименуем в Geometry.
В классе реализуем метод, вычисляющий площадь прямоугольника. Для демонстрации остановимся на работе с целыми числами. Код программы приведён ниже.
Площадь прямоугольника, как известно, это произведение двух его сторон.
Создание проекта для модульного тестирования в Visual Studio
Чтобы выполнить unit-тестирование, необходимо в рамках того же самого решения создать ещё один проект соответствующего типа.
Перед Вами появится следующий код:
using Microsoft . VisualStudio . TestTools . UnitTesting ;Директива [TestMethod] обозначает, что далее идёт метод, содержащий модульный (unit) тест. А [TestClass] в свою очередь говорит о том, что далее идёт класс, содержащий методы, в которых присутствуют unit-тесты.
В соответствии с принятыми соглашениями переименуем класс UnitTest1 в GeometryTests.
Также в коде необходимо подключить с помощью директивы using следующее пространство имён:
Займёмся написание теста. Проверим правильно ли вычисляет программа площадь прямоугольника со сторонами 3 и 5. Ожидаемый результат (правильное решение) в данном случае это число 15.
Тестирующий метод обычно содержит три необходимых компонента:
- исходные данные: входные значения и ожидаемый результат;
- код, вычисляющий значение с помощью тестируемого метода;
- код, сравнивающий ожидаемый результат с полученным.
Соответственно тестирующий код будет таким:
using Microsoft . VisualStudio . TestTools . UnitTesting ;Для сравнения ожидаемого результата с полученным используется метод AreEqual класса Assert. Данный класс всегда используется при написании unit тестов в Visual Studio.
В студии появится следующее окно:
Синяя табличка с восклицательным знаком означает, что указанный тест никогда не выполнялся. Выполним его.
Зелёный кружок с галочкой означает, что модульный тест успешно пройден: ожидаемый и полученный результаты равны.
Изменим код метода RectangleArea, вычисляющего площадь прямоугольника, чтобы сымитировать провал теста и посмотреть, как поведёт себя Visual Studio. Прибавим к возвращаемому значению 10.
Как Вы видите, красный круг с крестиком показывает провал модульного теста, а ниже указано, что при проверке ожидалось значение 15, а по факту оно равно 25.
Вы можете скачать исходник решения по ссылке ниже или перейти в репозиторий данного проекта на GitHub:
Приведём правило, которым следует руководствоваться при написании и проведении тестов для оценки правильного функционирования программ.
Удобнее всего будет рассмотреть пример основанный на математике.
Так или иначе тестируемый метод или функция (или вся программа в целом) имеет свою область допустимых входных значений. Для проверки правильности работы метода достаточно провести тестирование метода на входных значениях начала и конца области допустимых значений (ОДЗ), одного значения из внутренней части области, а также -1 от левой и +1 от правой границы области.
Читайте также: