Condividi tramite


Generare ed eseguire unit test usando i test di GitHub Copilot per .NET

Aumentare la fiducia nella qualità del codice e migliorare la copertura dei test creando ed eseguendo unit test usando i test di GitHub Copilot per .NET.

Anche se Copilot può generare unit test, è possibile ottenere funzionalità di test aggiuntive usando i test di GitHub Copilot per .NET in Visual Studio, tra cui:

  • Gli unit test vengono generati in un progetto separato all'interno della soluzione.
  • Copilot genera test in modo deterministico, fondati sulla semantica del compilatore e del linguaggio C#, quindi le asserzioni e i casi limite sono prevedibili e sicuri per i tipi.
  • I test di GitHub Copilot compilano gli unit test dopo la generazione di test. In caso di errori, la funzionalità di unit test in GitHub Copilot per .NET tenta di identificare e correggere gli errori e quindi riesegua i test.
  • I test di GitHub Copilot eseguono i test usando Test Explorer.

Il test di GitHub Copilot per .NET genera test per i progetti C# solo usando i framework MSTest, NUnit e xUnit. Se la soluzione include già unit test in NUnit o xUnit, i test di GitHub Copilot per .NET generano nuovi test nello stesso framework di unit test. Se nella soluzione non sono presenti unit test, i nuovi test vengono generati usando MSTest.

Prerequisiti

Per iniziare, è necessario:

Annotazioni

Il test di GitHub Copilot per .NET richiede una sottoscrizione di GitHub Copilot a pagamento (singola, aziendale o aziendale). Le sottoscrizioni copilot gratuite non sono supportate.

Per un'introduzione agli unit test, vedere Nozioni di base sugli unit test.

Modi per avviare i test di GitHub Copilot

È possibile avviare i test di GitHub Copilot per .NET in diversi modi:

  • Da Copilot Chat digitare @Test seguito da una destinazione o un prompt nella finestra Chat.
  • Nell'editor fare clic con il pulsante destro del mouse per aprire il menu di scelta rapida e scegliere Azioni copilote>Genera test.
  • In un nuovo thread di Copilot Chat, seleziona Scrivi test unitari dai suggerimenti per il rompighiaccio di Copilot Chat.

Annotazioni

Il menu contestuale e le opzioni icebreaker instradano automaticamente all'agente @Test quando nell'IDE il focus è sul codice C#. Per i progetti non C#, queste opzioni usano invece un prompt copilot generico.

Sintassi prompt

I test di GitHub Copilot supportano due metodi di richiesta: sintassi strutturata e richieste a formato libero.

Sintassi strutturata

Usare la @Test #<target> sintassi per generare test per elementi di codice specifici:

@Test #<target>

Dove #<target> può essere:

  • Membro, classe, file, progetto o soluzione
  • Un Git diff per testare le modifiche correnti (#git_changes)
  • Più input dello stesso tipo (ad esempio, più classi o più file)

Annotazioni

I tipi di input misti non sono supportati. Ad esempio, non è possibile combinare un file e un progetto nello stesso prompt.

Esempi:

  • @Test #BankAccount — Generare test per la classe BankAccount
  • @Test #git_changes — Generare test per le modifiche correnti di cui non è stato eseguito il commit
  • @Test #MyProject — Generare test per tutto il codice in MyProject

Richieste libere

Usare il linguaggio naturale per descrivere gli elementi da testare:

@Test <your prompt>

Esempi:

Rapido Description
@Test class Foo Generare test per una classe specifica
@Test generate tests for the core logic in my #solution Specificare le aree specifiche della codebase
@Test write unit tests for my current changes Generare test per le modifiche Git di cui non è stato eseguito il commit
@Test fix my failing tests Chiedere a Copilot di correggere i test non superati
@Test class Bar, targeting 80% code coverage Specificare una destinazione di copertura
@Test use xUnit with FluentAssertions Specificare framework e convenzioni di test

Suggerimento

È possibile fornire istruzioni specifiche sui framework di test, le librerie fittizie, gli stili di asserzione e le convenzioni di test nei prompt delle forme libere.

Comandi aggiuntivi

Il test di GitHub Copilot fornisce comandi per facilitare e gestire le preferenze:

Command Description
@Test /help Visualizzare il messaggio della Guida con i comandi e la sintassi disponibili
@Test /clear-preferences Cancellare le preferenze utente archiviate, incluse le impostazioni di consenso

Generare ed eseguire test

  1. Aprire un progetto C# esistente che richiede nuovi test.

    Se non si dispone di un progetto esistente, è possibile creare un nuovo progetto e quindi usare il codice dell'applicazione di esempio Bank per sperimentare gli unit test. Copiare il codice di esempio iniziale da Creare ed eseguire unit test per .NET in Program.cs.

  2. Costruisci il progetto.

    Assicurarsi che il progetto venga compilato senza errori per semplificare il processo.

  3. In Visual Studio, selezionare Visualizza > chat di GitHub Copilot.

  4. Usare uno dei metodi di richiesta per avviare i test di GitHub Copilot.

    Per l'applicazione di esempio Bank, usare una delle opzioni seguenti:

    • Strutturato: @Test #BankAccount
    • Freeform: @Test generate comprehensive tests for the BankAccount class

    Annotazioni

    È possibile usare la modalità Ask o Agent quando si immette il @Test comando . I risultati non differiscono.

    Il comando Test viene visualizzato nella chat come indicato di seguito, a indicare che il comando è riconosciuto.

    Screenshot del comando per generare test.

  5. Nella finestra Chat selezionare Invia.

    Il test di GitHub Copilot per .NET avvia un processo iterativo per l'analisi del codice, la creazione di un nuovo progetto per gli unit test, la generazione di test, la compilazione e l'esecuzione dei test.

    La generazione di test è un processo a esecuzione prolungata. A seconda dell'ambito della destinazione (file, progetto, soluzione e così via) potrebbero essere necessari alcuni minuti.

    Screenshot di Copilot che avvia la generazione di test.

    Quando vengono generati unit test, i test vengono visualizzati in un progetto di test separato nella soluzione.

    Screenshot del test di esempio generato.

    L'Esplora test mostra i risultati. Se Esplora test non viene aperto automaticamente dai test di GitHub Copilot, selezionare Esplora test>.

    Screenshot dell'output di Test Explorer.

    A questo punto, è possibile usare manualmente Esplora test per continuare a eseguire test o chattare con Copilot sui risultati dei test. È anche possibile usare Copilot per eseguire il debug di test non riusciti. Per altre informazioni, vedere Eseguire il debug di unit test.