Compartir a través de


Generación y ejecución de pruebas unitarias mediante pruebas de Copilot de GitHub para .NET

Aumente la confianza en la calidad del código y mejore la cobertura de pruebas mediante la creación y ejecución de pruebas unitarias mediante pruebas de Copilot de GitHub para .NET.

Aunque Copilot puede generar pruebas unitarias, obtendrá funcionalidad de pruebas adicionales mediante pruebas de Copilot de GitHub para .NET en Visual Studio, incluidas las siguientes:

  • Las pruebas unitarias se generan en un proyecto independiente dentro de la solución.
  • Copilot genera pruebas de manera determinista, fundamentadas en el compilador y la semántica del lenguaje de C#, por lo que las aserciones y los casos extremos son predecibles y seguros en cuanto a tipos.
  • Las pruebas de GitHub Copilot construyen las pruebas unitarias después de la generación de pruebas. Si hay errores, la funcionalidad de pruebas unitarias en GitHub Copilot para .NET intenta identificar y corregir errores y, a continuación, vuelve a ejecutar las pruebas.
  • Las pruebas de Copilot de GitHub ejecutan las pruebas mediante el Explorador de pruebas.

Las pruebas de Copilot de GitHub para .NET generan pruebas para proyectos de C# solo con los marcos MSTest, NUnit y xUnit. Si la solución ya tiene pruebas unitarias en NUnit o xUnit, las pruebas de Copilot de GitHub para .NET generan nuevas pruebas en el mismo marco de pruebas unitarias. Si no hay pruebas unitarias en la solución, se generan nuevas pruebas mediante MSTest.

Prerrequisitos

Para empezar, necesita lo siguiente:

Nota:

Las pruebas de GitHub Copilot para .NET, requieren una suscripción pagada a GitHub Copilot (individual, para empresas o para grandes empresas). No se admiten suscripciones gratuitas de Copilot.

Para obtener una introducción a las pruebas unitarias, consulte Conceptos básicos de las pruebas unitarias.

Formas de iniciar las pruebas de Copilot de GitHub

Puede iniciar pruebas de Copilot de GitHub para .NET de varias maneras:

  • En Copilot Chat, escriba @Test seguido de un destino o mensaje en la ventana Chat.
  • En el editor, haga clic con el botón derecho para abrir el menú contextual y seleccione Acciones >Generar pruebas.
  • En un nuevo hilo de Copilot Chat, seleccione Escribir pruebas unitarias en las sugerencias de rompehielos de Copilot Chat.

Nota:

El menú contextual y las opciones del separador de hielo se enrutan automáticamente al agente cuando el @Test foco del IDE está en el código de C#. En el caso de proyectos que no son C#, estas opciones utilizan una sugerencia genérica de Copilot.

Sintaxis del prompt

Las pruebas de GitHub Copilot admiten dos métodos de solicitud: sintaxis estructurada y avisos de forma libre.

Sintaxis estructurada

Use la @Test #<target> sintaxis para generar pruebas para elementos de código específicos:

@Test #<target>

Dónde #<target> puede ser:

  • Miembro,clase, archivo, proyecto o solución
  • Un git diff para probar los cambios actuales (#git_changes)
  • Varias entradas del mismo tipo (por ejemplo, varias clases o varios archivos)

Nota:

No se admiten tipos de entrada mixtos. Por ejemplo, no puede combinar un archivo y un proyecto en la misma indicación.

Ejemplos:

  • @Test #BankAccount — Generación de pruebas para la clase BankAccount
  • @Test #git_changes : genere pruebas para los cambios no confirmados actuales.
  • @Test #MyProject : generación de pruebas para todo el código en MyProject

Indicaciones de formato libre

Use lenguaje natural para describir lo que desea probar:

@Test <your prompt>

Ejemplos:

Pronto Description
@Test class Foo Generación de pruebas para una clase específica
@Test generate tests for the core logic in my #solution Dirige tu atención a áreas específicas de tu código base
@Test write unit tests for my current changes Generación de pruebas para cambios de Git no confirmados
@Test fix my failing tests Pida a Copilot que corrija las pruebas con errores
@Test class Bar, targeting 80% code coverage Especificar un destino de cobertura
@Test use xUnit with FluentAssertions Especificación de marcos de pruebas y convenciones

Sugerencia

Puede proporcionar instrucciones específicas sobre marcos de prueba, bibliotecas de simulación, estilos de aserción y convenciones de prueba en las indicaciones de formato libre.

Comandos adicionales

Las pruebas de Copilot de GitHub proporcionan comandos para obtener ayuda y administrar las preferencias:

Command Description
@Test /help Mostrar el mensaje de ayuda con comandos y sintaxis disponibles
@Test /clear-preferences Borrar las preferencias de usuario almacenadas, incluida la configuración de consentimiento

Generación y ejecución de pruebas

  1. Abra un proyecto de C# existente que necesite nuevas pruebas.

    Si no tiene un proyecto existente, puede crear un nuevo proyecto y, a continuación, usar el código de la aplicación de ejemplo Banco para experimentar con pruebas unitarias. Copie el código de ejemplo inicial de Creación y ejecución de pruebas unitarias para .NET en Program.cs.

  2. Compile el proyecto.

    Asegúrese de que el proyecto se compila sin errores para simplificar el proceso.

  3. En Visual Studio, seleccione Ver > Chat GitHub Copilot.

  4. Use cualquiera de los métodos de solicitud para iniciar las pruebas de GitHub Copilot.

    Para la aplicación Bank de ejemplo, use una de las siguientes opciones:

    • Estructurado: @Test #BankAccount
    • Forma libre: @Test generate comprehensive tests for the BankAccount class

    Nota:

    Puede estar en modo Preguntar o en modo Agente al escribir el @Test comando. Los resultados no difieren.

    El comando Test aparece en el chat como se indica a continuación, lo que indica que se reconoce el comando.

    Captura de pantalla del comando para generar pruebas.

  5. En la ventana Chat, seleccione Enviar.

    Las pruebas de Copilot de GitHub para .NET inician un proceso iterativo de análisis del código, la creación de un nuevo proyecto para las pruebas unitarias, la generación de pruebas, la compilación y la ejecución de las pruebas.

    La generación de pruebas es un proceso de ejecución prolongada. Dependiendo del ámbito del destino (archivo, proyecto, solución, etc.) puede tardar un tiempo.

    Captura de pantalla de Copilot iniciando la generación de pruebas.

    Cuando se generan pruebas unitarias, las pruebas aparecen en un proyecto de prueba independiente de la solución.

    Captura de pantalla de la prueba de ejemplo generada.

    El Explorador de pruebas muestra los resultados. Si el Explorador de pruebas no se abre automáticamente mediante pruebas de GitHub Copilot, seleccione Prueba>Explorador de pruebas.

    Captura de pantalla de la salida del Explorador de pruebas.

    En este momento, puede usar manualmente el Explorador de pruebas para continuar ejecutando pruebas o chatear con Copilot sobre los resultados de la prueba. También puede usar Copilot para depurar pruebas con errores. Para obtener más información, consulte Depurar pruebas unitarias.