Создавайте модульные тесты в представлении GitHub Copilot Chat
Представление «Чат» в Visual Studio Code — это основное место, где можно создавать модульные тесты с помощью GitHub Copilot. В представлении чата можно настроить платформу тестирования, создать тесты для файла или выбора и уточнить результаты до тех пор, пока тесты не соответствуют соглашениям проекта. В этом уроке основное внимание уделяется режиму агента, который записывает созданные тесты непосредственно в тестовый файл, может выполнять полученные тесты и выполнять итерацию сбоев — все из одного запроса чата. Вы также можете использовать режим ask заранее для изучения параметров тестирования без внесения изменений в файл.
Открытие представления чата
Откройте представление чата с помощью любого из следующих параметров:
- Нажмите Ctrl + Alt + I (Windows/Linux) или Cmd + Alt + I (macOS).
- Щелкните значок GitHub Copilot в строке заголовка и выберите Toggle Chat.
Представление "Чат" открывается во вторичной боковой панели и предоставляет три варианта настройки, которые влияют на каждый отправляемый вами запрос:
- Целевая среда агента: где работает агент. Выберите "Локальный" для интерактивного запуска агента в редакторе с полным доступом к рабочей области, средствам и моделям.
- Агент: Роль, которую ИИ принимает в ходе сеанса. Встроенные локальные агенты: Ask, Plan и Agent.
- Уровень разрешений. Сколько автономности агент имеет при вызове средств и команд терминала. Параметры включают утверждения по умолчанию, обход утверждений и автопилот.
Для создания модульного теста рекомендуемая отправная точка — агент с утверждениями по умолчанию. Режим агента может изменять файлы, запускать команды в терминале и перезапускать тесты, поэтому он может принять запрос вроде «создать тесты для этого метода» и сгенерировать рабочий файл тестов, который вам останется только проверить. Подтверждения по умолчанию держат вас в курсе, запрашивая подтверждение для каждого вызова инструмента.
При необходимости используйте режим "Запрос" для изучения вариантов тестирования в первую очередь
Режим Ask отвечает на вопросы в чате, не изменяя файлы и не вызывая инструменты. Это хорошо подходит, когда вы хотите заранее спланировать порядок действий, прежде чем позволить Агенту что-либо изменить. Используйте режим «Спросить», если вы хотите:
- Сравните предлагаемые тестовые сценарии для сложного метода, прежде чем окончательно выбрать структуру.
- Определите граничные случаи и условия границ, которые стоит охватывать.
- Получите рекомендацию для платформы тестирования или стиля утверждения.
- См. пример теста в чате без записи на диск.
Чтобы использовать режим "Запрос" для анализа:
Откройте окно чата и выберите "Запрос" из меню выбора агента.
Вложите соответствующий файл или выбранный фрагмент в качестве контекста (например, с помощью
#selectionили перетащив файл).Задайте вопрос анализа. Например:
What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.Просмотрите ответ, а затем переключите средство выбора агента на агент , чтобы создать фактические тесты.
Настройка платформы тестирования с помощью /setupTests
Если проект еще не настроен на тестовую платформу, GitHub Copilot может рекомендовать ее и выполнить действия по настройке. Команда со слешем /setupTests работает с любым агентом, но режим Agent также может устанавливать пакеты и создавать для вас тестовый проект.
Откройте представление чата и выберите агент из средства выбора агента.
/setupTestsВведите команду в поле ввода чата.Подтвердите вызовы инструментов и команды терминала, которые агент предлагает использовать, чтобы установить пакеты, создать каркас тестового проекта и порекомендовать расширения Visual Studio Code для тестирования.
/setupTests является наиболее полезным при запуске нового тестового проекта или подключении проекта, который еще не включает тесты.
Создание тестов с помощью /tests
Команда со слэшем /tests генерирует модульные тесты для кода, который в данный момент открыт в редакторе. В режиме агента созданные тесты записываются непосредственно в соответствующий тестовый файл. GitHub Copilot обнаруживает существующую платформу тестирования и стиль написания кода и создает тесты, соответствующие.
Чтобы создать тесты для всего файла:
Откройте файл кода приложения, который требуется проверить.
Откройте представление чата и убедитесь, что выбран агент .
В поле ввода чата введите
/tests, а затем любые дополнительные указания. Например:/tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.Подтвердите вызовы средства, которые агент использует для чтения контекста, записи тестов и (при необходимости) их выполнения.
Просмотрите изменения, примененные агентом.
Агент добавляет тесты в существующий тестовый файл, если он доступен, или создает новый тестовый файл в соответствующем расположении. Дифф отображается в редакторе, чтобы проверить каждое изменение.
Нажмите кнопку "Сохранить " или "Отменить ", чтобы принять или отменить изменения.
Чтобы создать тесты для определенного метода или блока кода:
Откройте файл кода приложения.
Выберите метод или блок, который требуется проверить.
В представлении «Чат» введите
/tests, а затем инструкции, которые ссылаются на выделенный фрагмент. Например:/tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.Просмотрите и сохраните или отмените полученные изменения.
Создавайте тесты с помощью запроса на естественном языке
Вам не нужно использовать слэш-команду. Агент создает тесты из запросов естественного языка при включении достаточного контекста. Примеры:
- "Создайте тесты xUnit для методов в этом файле и добавьте их в проект Calculator.Tests".
- Напишите модульные тесты для метода
CalculateDiscount, включая граничные случаи для отрицательных значений и нуля. Запустите тесты после их написания. - "Создайте тесты интеграции для уровня доступа к данным в этом модуле".
Так как агент может выполнять команды, можно включить шаги проверки в одну и ту же строку. Если попросить агента запустить тесты после того, как он их напишет, это позволит ему выявить и исправить очевидные ошибки, прежде чем вернуть вам результат.
Добавьте контекст к вашим запросам
Качество созданных тестов зависит от предоставленного контекста. Используйте один или несколько следующих параметров для присоединения контекста к запросу представления чата:
- Кнопка "Добавить контекст" : откройте быстрый выбор для добавления файлов, папок, символов или текущего выбора редактора.
- Перетаскивание: Перетащите файлы из панели «Проводник» или вкладку редактора на панель чата, чтобы прикрепить их содержимое.
-
#упоминания: Введите#, а затем имя файла, папки или символа, чтобы добавить его в контекст. Используйте#selection, чтобы прикрепить текущее выделение в редакторе, или#codebase, чтобы GitHub Copilot мог найти в рабочей области релевантный контекст. - Внешние файлы: открытие файлов markdown (например, рекомендации участника или соглашения о тестах) в редакторе и их присоединение с помощью add context. Агент использует содержимое для формирования созданных тестов.
Например, если в редакторе отображается один метод, можно задать следующее: Write a unit test for the method in #editor Если несколько методов видимы или целевой метод выходит за пределы видимой области, сначала выберите код и попросите: #selection write unit tests for the selected code
Просмотреть и доработать изменения агента
Несмотря на то, что агент записывает тесты непосредственно в тестовый проект, вы остаетесь под контролем:
- Просмотрите дифф: каждый файл, который изменяет Агент, открывается в редакторе с выделенными предлагаемыми изменениями. Прежде чем его принять, просмотрите изменения.
- Сохранить или отменить: используйте команду "Сохранить ", чтобы принять изменения или отменить их. Вы также можете отменить изменения в отдельных фрагментах в редакторе.
- Сборка и запуск: После внесения изменений соберите тестовый проект и запустите тесты в обозревателе тестов или в терминале, чтобы убедиться, что все компилируется и все тесты проходят успешно.
- Итерируйте: используйте последующие подсказки в рамках того же чата, чтобы уточнить конкретные тесты, добавить дополнительные случаи или переименовать методы.
Персонализация создания тестов с помощью пользовательских инструкций
Если у вашей организации есть определенные требования к тестированию, можно настроить способ GitHub Copilot создания тестов, чтобы выходные данные соответствовали вашим стандартам. Пользовательские инструкции позволяют вам:
- Укажите предпочтительные платформы тестирования (например, xUnit вместо NUnit).
- Определите соглашения об именовании для тестовых классов и методов.
- Задайте предпочтения для структуры кода, такие как паттерн Arrange-Act-Assert.
- Запрос конкретных шаблонов тестов, таких как параметризованные тесты для значений границ.
Храните пользовательские инструкции в файле *.instructions.md в рабочей области.
applyTo Используйте поле метаданных, чтобы применить инструкции только к тестируемым файлам. Например, значение applyTo: tests/** ограничивает действие инструкций файлами в каталоге tests/. Общий доступ к файлу в системе управления версиями предоставляет каждому разработчику в команде одинаковый контекст тестирования.
Important
Созданные тестовые случаи могут не охватывать каждый сценарий. Проверка вручную и проверка кода по-прежнему необходимы для обеспечения качества тестов.