Freigeben über


Generieren und Ausführen von Komponententests mithilfe von GitHub Copilot-Tests für .NET

Erhöhen Sie das Vertrauen in Ihre Codequalität und verbessern Sie ihre Testabdeckung, indem Sie Komponententests mithilfe von GitHub Copilot-Tests für .NET erstellen und ausführen.

Obwohl Copilot Komponententests generieren kann, erhalten Sie zusätzliche Testfunktionen, indem Sie GitHub Copilot-Tests für .NET in Visual Studio verwenden, einschließlich der folgenden:

  • Komponententests werden in einem separaten Projekt innerhalb der Projektmappe generiert.
  • Copilot generiert Tests deterministisch auf Basis der C#-Compiler- und Sprachsemantik, sodass Assertions und Edgefälle vorhersehbar und typsicher sind.
  • GitHub Copilot Test erstellt die Komponententests nach der Testgenerierung. Wenn Fehler auftreten, versucht die Komponententestfunktion in GitHub Copilot für .NET, Fehler zu identifizieren und zu beheben, und führt dann die Tests erneut aus.
  • GitHub Copilot-Tests führen die Tests mithilfe des Test-Explorers aus.

GitHub Copilot-Tests für .NET generiert Tests für C#-Projekte nur mithilfe der MSTest-, NUnit- und xUnit-Frameworks. Wenn die Lösung bereits Komponententests in NUnit oder xUnit enthält, generiert GitHub Copilot-Tests für .NET neue Tests im selben Komponententestframework. Wenn keine Komponententests in der Lösung vorhanden sind, werden neue Tests mithilfe von MSTest generiert.

Voraussetzungen

Um zu beginnen, benötigen Sie Folgendes:

Hinweis

GitHub Copilot-Tests für .NET erfordert ein kostenpflichtiges GitHub Copilot-Abonnement (Einzel-, Geschäfts- oder Unternehmensabonnement). Kostenlose Copilot-Abonnements werden nicht unterstützt.

Eine Einführung in Komponententests finden Sie unter Komponententestgrundlagen.

Möglichkeiten zum Starten von GitHub Copilot-Tests

Sie können GitHub Copilot-Tests für .NET auf verschiedene Arten starten:

  • Geben Sie @Test im Chatfenster ein, gefolgt von einem Ziel oder einer Eingabeaufforderung.
  • Klicken Sie im Editor mit der rechten Maustaste, um das Kontextmenü zu öffnen, und wählen Sie "Copilot Actions>Generate Tests" aus.
  • Wählen Sie in einem neuen Copilot-Chat-Thread "Unit-Tests schreiben" aus den Vorschlägen "Copilot Chat-Eisbrecher" aus.

Hinweis

Die Optionen im Kontextmenü und für den Icebreaker werden automatisch an den @Test-Agent weitergeleitet, wenn der IDE-Fokus auf C#-Code liegt. Bei Nicht-C#-Projekten verwenden diese Optionen stattdessen eine generische Copilot-Eingabeaufforderung.

Eingabeaufforderungssyntax

GitHub Copilot-Tests unterstützen zwei Aufforderungsmethoden: strukturierte Syntax und frei formulierte Eingabeaufforderungen.

Strukturierte Syntax

Verwenden Sie die @Test #<target> Syntax, um Tests für bestimmte Codeelemente zu generieren:

@Test #<target>

Wo #<target> kann folgendes sein:

  • Ein Mitglied, eine Klasse, eine Datei, ein Projekt oder eine Lösung
  • Ein Git-Diff zum Testen ihrer aktuellen Änderungen (#git_changes)
  • Mehrere Eingaben derselben Art (z. B. mehrere Klassen oder mehrere Dateien)

Hinweis

Gemischte Eingabetypen werden nicht unterstützt. Beispielsweise können Sie eine Datei und ein Projekt nicht in derselben Eingabeaufforderung kombinieren.

Beispiele:

  • @Test #BankAccount — Generieren von Tests für die BankAccount-Klasse
  • @Test #git_changes – Generieren von Tests für ihre aktuellen nicht abgeschlossenen Änderungen
  • @Test #MyProject — Generieren von Tests für den gesamten Code in MyProject

Freiform-Eingabehinweise

Verwenden Sie natürliche Sprache, um zu beschreiben, was Sie testen möchten:

@Test <your prompt>

Beispiele:

Prompt Description
@Test class Foo Generieren von Tests für eine bestimmte Klasse
@Test generate tests for the core logic in my #solution Festlegen bestimmter Bereiche Ihrer Codebasis
@Test write unit tests for my current changes Generieren von Tests für nicht abgeschlossene Git-Änderungen
@Test fix my failing tests Bitten Sie Copilot, fehlerhafte Tests zu beheben
@Test class Bar, targeting 80% code coverage Angeben eines Abdeckungsziels
@Test use xUnit with FluentAssertions Angeben von Testframeworks und Konventionen

Tipp

Sie können spezifische Anweisungen zu Testframeworks, Mocking-Bibliotheken, Assertionsstilen und Testkonventionen in Ihren freien Eingabeaufforderungen geben.

Zusätzliche Befehle

GitHub Copilot-Tests bieten Befehle für die Hilfe und Verwaltung von Einstellungen:

Command Description
@Test /help Anzeigen der Hilfemeldung mit verfügbaren Befehlen und Syntax
@Test /clear-preferences Löschen gespeicherter Benutzereinstellungen, einschließlich Zustimmungseinstellungen

Generieren und Ausführen von Tests

  1. Öffnen Sie ein vorhandenes C#-Projekt, das neue Tests benötigt.

    Wenn Sie nicht über ein vorhandenes Projekt verfügen, können Sie ein neues Projekt erstellen und dann den Beispielanwendungscode der Bank verwenden, um mit Komponententests zu experimentieren. Kopieren Sie den Startbeispielcode aus create and run unit tests for .NET in Program.cs.

  2. Projekt erstellen.

    Stellen Sie sicher, dass das Projekt ohne Fehler erstellt wird, um den Prozess zu vereinfachen.

  3. Wählen Sie in Visual Studio Anzeigen > GitHub Copilot Chat aus.

  4. Verwenden Sie eine der Eingabeaufforderungsmethoden, um GitHub Copilot-Tests zu starten.

    Verwenden Sie für die Beispielanwendung der Bank eine der folgenden Optionen:

    • Strukturiert: @Test #BankAccount
    • Freiform: @Test generate comprehensive tests for the BankAccount class

    Hinweis

    Sie können sich entweder im Fragenmodus oder im Agentmodus befinden, wenn Sie den @Test Befehl eingeben. Die Ergebnisse unterscheiden sich nicht.

    Der Befehl "Testen" wird im Chat wie folgt angezeigt, was angibt, dass der Befehl erkannt wird.

    Screenshot des Befehls zum Generieren von Tests.

  5. Wählen Sie im Chatfenster Senden aus.

    GitHub Copilot-Tests für .NET initiieren einen iterativen Prozess der Analyse Ihres Codes, erstellen ein neues Projekt für die Komponententests, generieren Tests, Erstellen und Ausführen der Tests.

    Die Testgenerierung ist ein lang andauernder Prozess. Je nach Umfang Ihres Ziels (Datei, Projekt, Lösung usw.) kann es eine Weile dauern.

    Screenshot der Copilot-Starttestgenerierung.

    Wenn Komponententests generiert werden, werden die Tests in einem separaten Testprojekt in der Projektmappe angezeigt.

    Screenshot des generierten Beispieltests.

    Der Test-Explorer zeigt die Ergebnisse an. Wenn der Test-Explorer nicht automatisch von den GitHub Copilot-Tests geöffnet wird, wählen Sie Test>Test Explorer aus.

    Screenshot der Ausgabe des Test-Explorers.

    An diesem Punkt können Sie den Test-Explorer manuell verwenden, um die Ausführung von Tests fortzusetzen oder mit Copilot über die Testergebnisse zu chatten. Sie können copilot auch verwenden, um fehlgeschlagene Tests zu debuggen. Weitere Informationen finden Sie unter Debug-Komponententests.