Untersuchen der Komponententesttools und -umgebung

Abgeschlossen

GitHub Copilot Chat kann verwendet werden, um Komponententests basierend auf dem von Ihnen angegebenen Code vorzuschlagen. Wenn Sie beispielsweise eine Methodensignatur und entsprechenden Text angeben, kann GitHub Copilot Chat Testfälle vorschlagen, die Eingabeparameter und erwartete Ausgabewerte abdecken. Sobald Ihr Testprojekt einige Testfälle enthält, können Sie GitHub Copilot verwenden, um Vorschläge zur Codevervollständigung für zusätzliche Testfälle zu generieren. Die Verwendung der Codezeilenvervollständigung zum Generieren von Komponententests reduziert den Arbeitsaufwand durch sich wiederholenden Prozesse und trägt dazu bei, sicherzustellen, dass Ihr Code gründlich getestet wird.

GitHub Copilot Chat verwendet den Kontext und die Semantik Ihres Codes, um Assertionen vorzuschlagen, die sicherstellen, dass die Funktion ordnungsgemäß funktioniert. Er hilft Ihnen auch beim Schreiben von Testfällen für Randfälle und Grenzbedingungen, die möglicherweise schwer manuell zu identifizieren sind. Beispielsweise kann GitHub Copilot Chat Testfälle für die Fehlerbehandlung, Nullwerte oder unerwartete Eingabetypen vorschlagen.

Wichtig

Generierte Testfälle decken möglicherweise nicht alle möglichen Szenarien ab. Manuelle Tests und Codeüberprüfungen sind erforderlich, um die Qualität Ihres Codes sicherzustellen.

GitHub Copilot-Unterstützung für Komponententests

Copilot kann bei den folgenden Testaufgaben helfen:

  • Einrichten von Testframeworks: Erhalten Sie Hilfe beim Konfigurieren des richtigen Testframeworks und der VS-Codeerweiterungen für Ihr Projekt und Ihre Sprache.
  • Generieren Sie Testcode: Erstellen Sie Komponententests, Integrationstests und End-to-End-Tests, die Ihren Anwendungscode abdecken.
  • Behandeln sie Edgefälle: Generieren Sie umfassende Testsuiten, um Edgefälle und Fehlerbedingungen abzudecken.
  • Beheben von Fehlerhaften Tests: Erhalten Sie Vorschläge zum Beheben von Testfehlern.
  • Konsistenz beibehalten: Personalisieren Sie Copilot, um Tests zu generieren, die den Codierungspraktiken Ihres Projekts entsprechen.

Einrichten des Testframeworks

Um Ihren Testworkflow zu beschleunigen, kann Copilot dabei helfen, das Testframework und VS Code-Erweiterungen für Ihr Projekt einzurichten. Copilot schlägt geeignete Testframeworks basierend auf Ihrem Projekttyp vor.

  1. Öffnen Sie die Chatansicht.

  2. Geben Sie den /setupTests Befehl in das Chateingabefeld ein.

  3. Befolgen Sie die Anleitungen von GitHub Copilot, um Ihr Projekt zu konfigurieren.

Schreiben von Komponententests mit GitHub Copilot

GitHub Copilot kann Ihnen beim Schreiben von Tests für Ihren Anwendungscode helfen, indem Sie Testcode generieren, der Ihre Codebasis abdeckt. Dazu gehören Komponententests, End-to-End-Tests und Tests für Edgefälle.

Sie können Komponententests mithilfe der folgenden GitHub Copilot-Tools generieren:

  • Chatansicht: Verwenden Sie die Chatansicht, um Komponententests für ein Projekt, eine Klasse oder eine Methode mithilfe des Modus "Ask", "Bearbeiten" oder "Agent" zu generieren.
  • Inlinechat: Verwenden Sie Inline-Chat, um Komponententests für ausgewählte Klassen oder Methoden zu generieren.
  • Intelligente Aktionen: Verwenden Sie die intelligente Aktion "Tests generieren", um Komponententests für ausgewählten Code zu generieren, ohne eine Eingabeaufforderung zu schreiben.
  • Codezeilenabschluss: Verwenden Sie Codezeilenvervollständigen, um Zusätzliche Komponententests für einen vorhandenen Testfall vorzuschlagen.

Beheben von fehlerhaften Tests

Copilot integriert sich in den Test-Explorer in Visual Studio Code und kann bei der Behebung fehlerhafter Tests helfen.

  1. Fahren Sie mit der Maus im Fenster 'Test-Explorer' über einen fehlerhaften Test.

  2. Wählen Sie die Schaltfläche " Fehler beheben" (Funkeln-Symbol) aus.

  3. Überprüfen und anwenden Sie die vorgeschlagene Lösung von Copilot.

Alternativ können Sie folgendes tun:

  1. Öffnen Sie die Chatansicht.

  2. Geben Sie den /fixTestFailure Schrägstrichbefehl ein.

  3. Folgen Sie den Vorschlägen von Copilot, um den Test zu beheben.

Tipp

Der Agentmodus überwacht die Testausgabe beim Ausführen von Tests und versucht automatisch, fehlerhafte Tests zu beheben und erneut auszuführen.

Konsistenz beibehalten

Wenn Ihre Organisation bestimmte Testanforderungen erfüllt, können Sie anpassen, wie Copilot Tests generiert, um sicherzustellen, dass sie Ihren Standards entsprechen. Sie können personalisieren, wie Copilot Tests generiert, indem Sie benutzerdefinierte Anweisungen bereitstellen. Beispiel:

  • Angeben bevorzugter Testframeworks
  • Definieren von Benennungskonventionen für Tests
  • Festlegen von Codestruktureinstellungen
  • Anfordern bestimmter Testmuster oder Methoden

Unterstützung in Visual Studio Code für Komponententests

Zum Erstellen und Ausführen von C#-Komponententests in Visual Studio Code benötigen Sie die folgenden Ressourcen:

  • Das .NET 8.0 SDK oder höher.
  • Die C#-Dev Kit-Erweiterung für Visual Studio Code.
  • Ein Testframeworkpaket, das Ihrem Projekt hinzugefügt wurde.

C#-Dev Kit-Unterstützung für Komponententests

Die C#-Dev-Kit-Erweiterung für Visual Studio Code bietet eine Vielzahl von Features, mit denen Sie Komponententests für Ihre C#-Projekte erstellen und verwalten können. Es umfasst die folgenden Features:

  • Test-Explorer: eine Strukturansicht, in der alle Testfälle in Ihrem Arbeitsbereich angezeigt werden.
  • Testfälle ausführen/debuggen: eine Funktion zum Ausführen und Debuggen von Testfällen.
  • Testergebnisse anzeigen: eine Funktion zum Anzeigen der Testergebnisse.
  • Testbefehle: Befehle zum Ausführen aller Tests, zum Ausführen fehlgeschlagener Tests und mehr.
  • Testeinstellungen: Einstellungen, die für Tests spezifisch sind.
  • Testframeworkpaket

Das C#-Dev-Kit unterstützt die folgenden Testframeworks:

  • xUnit
  • NUnit
  • MSTest

Mit dem C#-Dev-Kit können Sie ein Testprojekt erstellen, ein Testframeworkpaket hinzufügen und Komponententests verwalten.

Aktivieren eines Testframeworks

Die Befehlspalette in Visual Studio Code bietet die einfachste Möglichkeit, ein Testframework für Ihr Projekt zu aktivieren. Sie können die Befehlspalette auf folgende Weise öffnen:

  • Drücken Sie die Tasten STRG + UMSCHALTTASTE + P (Windows/Linux) oder BEFEHLSTASTE + UMSCHALTTASTE + P (macOS).
  • Öffnen Sie das Menü Ansicht, und wählen Sie dann Befehlspalette aus.
  • Öffnen Sie die Ansicht „Projektmappen-Explorer“, klicken Sie mit der rechten Maustaste auf den Projektordner, und wählen Sie dann Neues Projekt aus. Mit dieser Option wird die Befehlspalette geöffnet, wobei der Befehl .NET:Neues Projekt... bereits ausgewählt ist.

In den folgenden Abschnitten wird beschrieben, wie Sie ein Testframework für Ihr C#-Projekt mithilfe der Befehlspalette aktivieren.

xUnit

Öffnen Sie die Befehlspalette und wählen Sie .NET:New Project... und dann xUnit Test Project aus, und geben Sie Namen und Speicherort für das neue Projekt an. Mit diesem Befehl wird ein neues Projekt und Verzeichnis erstellt, das xUnit als Testbibliothek verwendet und den Testläufer konfiguriert, indem der Projektdatei die folgenden <PackageReference />-Elemente hinzugefügt werden.

  • Microsoft.NET.Test.Sdk
  • xUnit
  • xunit.runner.visualstudio
  • coverlet.collector

Über das Terminal können Sie den folgenden Befehl ausführen:


   dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

NUnit

Öffnen Sie die Befehlspalette und wählen Sie .NET:New Project... und dann NUnit3 Test Project aus, und geben Sie Namen und Speicherort für das neue Projekt an. Mit diesem Befehl wird ein neues Projekt und Verzeichnis erstellt, das NUnit als Testbibliothek verwendet und den Testläufer konfiguriert, indem der Projektdatei die folgenden <PackageReference />-Elemente hinzugefügt werden.

  • Microsoft.NET.Test.Sdk
  • NUnit
  • NUnit3TestAdapter

Führen Sie im Terminal den folgenden Befehl aus:

    dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

MSTest

Öffnen Sie die Befehlspalette und wählen Sie .NET:New Project... und dann MSTest Test Project aus, und geben Sie Namen und Speicherort für das neue Projekt an. Mit diesem Befehl wird ein neues Projekt und Verzeichnis erstellt, das MSTest als Testbibliothek verwendet und den Testläufer konfiguriert, indem der Projektdatei die folgenden <PackageReference />-Elemente hinzugefügt werden.

  • Microsoft.NET.Test.Sdk
  • MSTest.TestAdapter
  • MSTest.TestFramework
  • coverlet.collector

Führen Sie im Terminal den folgenden Befehl aus:

    dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

Entwickeln von Komponententests in Visual Studio Code mithilfe von GitHub Copilot Chat

Die Kombination aus Visual Studio Code und GitHub Copilot Chat bietet eine leistungsstarke Umgebung zum Erstellen und Ausführen von Komponententests für Ihre C#-Projekte.

Der Komponententestprozess kann in drei Stufen unterteilt werden:

  • Verwenden Sie Visual Studio Code, um ein Testprojekt für die Komponententests zu erstellen.
  • Verwenden Sie GitHub Copilot Chat, um Komponententestfälle für Ihr C#-Projekt zu entwickeln.
  • Verwenden Sie Visual Studio Code und das C#-Dev Kit, um Komponententests auszuführen und zu verwalten.

Erstellen eines Testprojekts

Sie müssen ein Testprojekt erstellen, das Ihre Komponententests enthalten wird. Für die folgenden Aufgaben können Sie Visual Studio Code verwenden:

  1. Erstellen Sie mithilfe der Befehlspalette ein Testprojekt, das ein angegebenes Testframework verwendet.

  2. Verwenden Sie das integrierte Terminal, um einen Verweis auf das Projekt hinzuzufügen, das Sie testen.

Dieser Prozess erstellt ein neues Projekt und konfiguriert den Testläufer für das ausgewählte Framework.

Generieren von Komponententestfällen mithilfe von GitHub Copilot Chat

GitHub Copilot Chat kann verwendet werden, um Komponententestfälle für Ihr Testframework zu schreiben. Copilot Chat erkennt Ihr Testframework und Ihren Codierungsstil und generiert übereinstimmende Codeschnipsel. Sie können den Copilot-Chat verwenden, um die folgenden Aufgaben auszuführen:

  • Schreiben Sie Komponententestfälle für Ihr Testframework basierend auf dem im Editor geöffneten Code oder dem Codeausschnitt, den Sie im Editor hervorheben. Copilot identifiziert Ihr Testframework und Codierungsstil und generiert übereinstimmende Codeausschnitte.

  • Identifizieren und schreiben Sie Testfälle für Randfälle und Grenzbedingungen, die möglicherweise schwer manuell zu identifizieren sind. Beispielsweise kann Copilot Testfälle für die Fehlerbehandlung, Nullwerte oder unerwartete Eingabetypen vorschlagen.

  • Schlagen Sie Assertionen vor, die sicherstellen, dass die Funktion ordnungsgemäß funktioniert, basierend auf dem Kontext und der Semantik des Codes. Generieren Sie beispielsweise Assertionen, um sicherzustellen, dass Funktionseingabeparameter gültig sind.

Berücksichtigen Sie die folgenden Szenarien, wenn Sie Copilot Chat bitten, Komponententestfälle zu generieren:

  • Wenn eine einzelne Methode im Editor vollständig sichtbar ist, könnten Sie Copilot Chat bitten, einen Komponententest für die Methode durch Eingabe von Write a unit test for the method in the #editor zu generieren.

  • Wenn mehrere Methoden sichtbar sind oder die beabsichtigte Methode über das im Editor sichtbare Objekt hinausgeht, wählen Sie den Code aus, für den Sie einen Komponententest generieren möchten, und fragen Sie dann Copilot folgendes: #selection write a unit test for this code.

Ausführen und Verwalten von Komponententests in Visual Studio Code

Visual Studio Code und das C#-Dev Kit bieten eine Vielzahl von Features, mit denen Sie Komponententests für Ihre C#-Projekte ausführen und verwalten können. Sie können Testfälle ausführen/debuggen, Testergebnisse anzeigen und Testfälle mithilfe des Test-Explorers verwalten.

  • Testfälle ausführen/debuggen: C#-Dev Kit generiert Verknüpfungen (die grüne Wiedergabeschaltfläche) auf der linken Seite der Klassen- und Methodendefinition. Um die Zieltestfälle auszuführen, wählen Sie die grüne Wiedergabeschaltfläche aus. Sie können auch mit der rechten Maustaste darauf klicken, um weitere Optionen anzuzeigen.

  • Test-Explorer: Der Test-Explorer ist eine Strukturansicht, in der alle Testfälle in Ihrem Arbeitsbereich angezeigt werden. Sie können die Schaltfläche „Beaker“ auf der linken Aktivitätsleiste von Visual Studio Code auswählen, um ihn zu öffnen. Sie können ihre Testfälle auch ausführen/debuggen und deren Testergebnisse dort einsehen.

  • Anzeigen von Testergebnissen: Nach dem Ausführen/Debuggen der Testfälle wird der Status der zugehörigen Testelemente sowohl in Editor-Dekorationen als auch im Test-Explorer aktualisiert. Sie können die Verknüpfungen in der Stapelablaufverfolgung auswählen, um zum Quellspeicherort zu navigieren.

  • Visual Studio Code-Testbefehle: Es gibt Testbefehle (z. B. alle Tests ausführen), die durch Suchen nach „Test“ in der Befehlspalette gefunden werden können.

  • Testeinstellungen für Visual Studio Code: Es gibt spezifische Visual Studio Code-Einstellungen für Tests, die sie finden können, indem Sie im Einstellungs-Editor nach "Testen" suchen.

Zusammenfassung

GitHub Copilot Chat kann verwendet werden, um Komponententests basierend auf dem von Ihnen angegebenen Code vorzuschlagen. Wenn Sie beispielsweise eine Methodensignatur und entsprechenden Text angeben, kann GitHub Copilot Chat Testfälle vorschlagen, die Eingabeparameter und erwartete Ausgabewerte abdecken. Sobald Ihr Testprojekt einige Testfälle enthält, können Sie GitHub Copilot verwenden, um Vorschläge zur Codevervollständigung für zusätzliche Testfälle zu generieren. Die Verwendung der Codezeilenvervollständigung zum Generieren von Komponententests reduziert den Arbeitsaufwand durch sich wiederholenden Prozesse und trägt dazu bei, sicherzustellen, dass Ihr Code gründlich getestet wird.

GitHub Copilot Chat verwendet den Kontext und die Semantik Ihres Codes, um Assertionen vorzuschlagen, die sicherstellen, dass die Funktion ordnungsgemäß funktioniert. Er hilft Ihnen auch beim Schreiben von Testfällen für Randfälle und Grenzbedingungen, die möglicherweise schwer manuell zu identifizieren sind. Beispielsweise kann GitHub Copilot Chat Testfälle für die Fehlerbehandlung, Nullwerte oder unerwartete Eingabetypen vorschlagen.