Generación de pruebas unitarias con la vista de Copilot Chat de GitHub

Completado

La vista Chat de Visual Studio Code es el lugar principal para generar pruebas unitarias con GitHub Copilot. Desde la vista Chat, puede configurar un marco de pruebas, generar pruebas para un archivo o selección y refinar los resultados hasta que las pruebas coincidan con las convenciones del proyecto. Esta unidad se centra en el modo agente, que escribe pruebas generadas directamente en un archivo de prueba, puede ejecutar las pruebas resultantes e iterar en los errores, todo ello desde un único mensaje de chat. También puede usar el modo Preguntar de antemano para explorar las opciones de prueba sin realizar ningún cambio en el archivo.

Abrir la vista Chat

Abra la vista Chat con cualquiera de las siguientes opciones:

  • Presione Ctrl + Alt + I (Windows//Linux) o Cmd + Alt + I (macOS).
  • Seleccione el icono de GitHub Copilot en la barra de título y, a continuación, seleccione Toggle Chat.

La vista Chat se abre en la barra lateral secundaria y proporciona tres opciones de configuración que afectan a cada mensaje que envíe:

  • Destino del agente: donde se ejecuta el agente. Seleccione Local para ejecutar el agente de forma interactiva en el editor con acceso completo al área de trabajo, las herramientas y los modelos.
  • Agente: el rol que toma la inteligencia artificial para la sesión. Los agentes locales integrados son Ask, Plan y Agent.
  • Nivel de permiso: la autonomía que tiene el agente al invocar herramientas y comandos de terminal. Las opciones son Aprobaciones predeterminadas, Omisión de aprobaciones y Autopilot.

Para la generación de pruebas unitarias, el punto de partida recomendado es el Agente con aprobaciones predeterminadas. El modo de agente puede editar archivos, ejecutar comandos de terminal y volver a ejecutar pruebas, por lo que puede tomar un mensaje como "generar pruebas para este método" y generar un archivo de prueba de trabajo que solo necesite revisar. Las aprobaciones predeterminadas le mantienen en el bucle pidiendo que confirme cada invocación de herramienta.

Opcionalmente, use el modo Preguntar para explorar primero las opciones de prueba.

Haga respuestas a preguntas en el modo de chat sin modificar archivos ni invocar herramientas. Esto hace que sea una buena opción cuando quiera planear un enfoque antes de permitir que el Agente cambie cualquier cosa. Use el modo Preguntar cuando desee:

  • Compare los posibles casos de prueba para un método complejo antes de decidirse por una estructura.
  • Identifique los casos perimetrales y las condiciones de límite que merece la pena cubrir.
  • Obtenga una recomendación para un marco de pruebas o un estilo de aserción.
  • Vea un ejemplo de prueba en chat sin escribirlo en el disco.

Para usar el modo Preguntar para el análisis:

  1. Abra la vista Chat y seleccione Preguntar en el selector del agente.

  2. Adjunte el archivo o la selección pertinentes como contexto (por ejemplo, con #selection o arrastrando un archivo en).

  3. Haga una pregunta de análisis. Por ejemplo: What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.

  4. Revise la respuesta y cambie el selector del agente al Agente para generar las pruebas reales.

Configuración de un marco de pruebas con /setupTests

Si el proyecto aún no tiene configurado un marco de pruebas, GitHub Copilot puede recomendar uno y guiarle por los pasos de configuración. El /setupTests comando de barra diagonal funciona en cualquier agente, pero el modo agente también puede instalar paquetes y crear el proyecto de prueba automáticamente.

  1. Abra la vista Chat y seleccione Agente en el selector de agentes.

  2. Escriba el /setupTests comando en el campo de entrada del chat.

  3. Confirme las invocaciones de herramientas y los comandos de terminal que sugiere el Agente para instalar paquetes, generar la estructura del proyecto de prueba y recomendar las extensiones de prueba para Visual Studio Code.

/setupTests resulta más útil cuando se inicia un nuevo proyecto de prueba o se incorpora un proyecto que aún no incluye pruebas.

Generación de pruebas con /tests

El /tests comando de barra diagonal genera pruebas unitarias para el código que está activo actualmente en el editor. En el modo Agente, las pruebas generadas se escriben directamente en un archivo de prueba adecuado. GitHub Copilot detecta el marco de pruebas existente y el estilo de codificación y genera pruebas que coinciden.

Para generar pruebas para un archivo completo:

  1. Abra el archivo de código de la aplicación que desea probar.

  2. Abra la vista Chat y confirme que el Agente está seleccionado.

  3. En el campo de entrada de chat, escriba /tests seguido de cualquier guía adicional. Por ejemplo: /tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.

  4. Confirme las invocaciones de las herramientas que usa el Agente para leer el contexto, escribir las pruebas y, opcionalmente, ejecutarlas.

  5. Revise los cambios aplicados por el Agente.

    El Agente anexa pruebas a un archivo de prueba existente cuando hay uno disponible o crea un nuevo archivo de prueba en la ubicación adecuada. La diferencia aparece en el editor para que pueda comprobar cada cambio.

  6. Seleccione Mantener o Deshacer para aceptar o descartar los cambios.

Para generar pruebas para un método específico o bloque de código:

  1. Abra el archivo de código de la aplicación.

  2. Seleccione el método o bloque que desea probar.

  3. En la vista Chat, escriba /tests seguido de instrucciones que hagan referencia a la selección. Por ejemplo: /tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.

  4. Revise y mantenga o descarte los cambios resultantes.

Generación de pruebas con un mensaje de lenguaje natural

No tiene que usar un comando de barra diagonal. El agente genera pruebas a partir de mensajes de lenguaje natural cuando se incluye suficiente contexto. Ejemplos:

  • "Genere pruebas xUnit para los métodos de este archivo y agréguelas al proyecto Calculator.Tests".
  • Escriba pruebas unitarias para el método CalculateDiscount, incluyendo los casos límite para valores negativos y cero. Ejecute las pruebas después de escribirlas".
  • "Cree pruebas de integración para la capa de acceso a datos en este módulo".

Dado que el agente puede ejecutar comandos, puedes incluir pasos de verificación en el mismo prompt. Pedir al Agente que ejecute las pruebas después de escribirlas le permite detectar y corregir errores obvios antes de devolverle el trabajo.

Añade contexto a tus indicaciones

La calidad de las pruebas generadas depende del contexto que proporcione. Usa una o varias de las opciones siguientes para adjuntar contexto a una solicitud de la vista Chat:

  • Botón Agregar contexto: abra una selección rápida para agregar archivos, carpetas, símbolos o la selección del editor actual.
  • Arrastrar y colocar: arrastre archivos desde la vista Explorador o arrastre una pestaña del editor hasta la vista Chat para adjuntar el contenido.
  • # menciones: escriba # seguido de un nombre de archivo, carpeta o símbolo para agregarlo como contexto. Use #selection para adjuntar la selección del editor actual o #codebase para permitir que GitHub Copilot busque el contexto pertinente en el área de trabajo.
  • Archivos externos: abra archivos markdown (por ejemplo, directrices de colaborador o convenciones de prueba) en el editor y adjuntelos a través de Agregar contexto. El agente usa el contenido para dar forma a las pruebas generadas.

Por ejemplo, si un único método está visible en el editor, puede preguntar: Write a unit test for the method in #editor. Si hay varios métodos visibles o el método de destino se extiende más allá del área visible, seleccione primero el código y pregunte: #selection write unit tests for the selected code.

Revisar y refinar los cambios del agente

Aunque el Agente escribe pruebas directamente en tu proyecto de pruebas, sigues teniendo el control:

  • Revise la diferencia: cada archivo que el Agente cambia se abre en el editor con las modificaciones propuestas resaltadas. Revise los cambios antes de aceptarlos.
  • Mantener o deshacer: use Mantener para aceptar los cambios o Deshacer para revertirlos. También puede revertir bloques individuales desde el editor.
  • Compilación y ejecución: después de mantener los cambios, compile el proyecto de prueba y ejecute las pruebas desde el Explorador de pruebas o el terminal para confirmar que todo se compila y supera.
  • Iteración: use avisos de seguimiento en la misma sesión de chat para refinar pruebas específicas, agregar más casos o cambiar el nombre de los métodos.

Personalización de la generación de pruebas con instrucciones personalizadas

Si su organización tiene requisitos de prueba específicos, puede personalizar cómo GitHub Copilot genera pruebas para que la salida coincida con los estándares. Las instrucciones personalizadas le permiten:

  • Especifique marcos de pruebas preferidos (por ejemplo, xUnit en lugar de NUnit).
  • Defina las convenciones de nomenclatura para las clases y métodos de prueba.
  • Establezca preferencias de estructura de código como el patrón Arrange-Act-Assert.
  • Solicite patrones de prueba específicos, como pruebas parametrizadas para los valores de límite.

Almacene instrucciones personalizadas en un *.instructions.md archivo del área de trabajo. Use el applyTo campo de metadatos para aplicar las instrucciones solo para probar archivos. Por ejemplo, un applyTo: tests/** valor limita las instrucciones a los archivos del tests/ directorio. El uso compartido del archivo en el control de código fuente proporciona a todos los desarrolladores del equipo el mismo contexto de prueba.

Importante

Es posible que los casos de prueba generados no cubran todos los escenarios. La revisión manual y la revisión de código siguen siendo necesarias para garantizar la calidad de las pruebas.