Badanie narzędzi i środowiska do testowania jednostkowego

Ukończone

GitHub Copilot Czat może służyć do sugerowania testów jednostkowych na podstawie określonego kodu. Jeśli na przykład określisz sygnaturę metody i treść, GitHub Copilot Chat może sugerować przypadki testowe obejmujące parametry wejściowe i oczekiwane wartości wyjściowe. Gdy projekt testowy zawiera kilka przypadków testowych, możesz użyć GitHub Copilot, aby wygenerować sugestie dotyczące uzupełniania kodu dla dodatkowych przypadków testowych. Używanie uzupełniania wierszy kodu do generowania testów jednostkowych zmniejsza powtarzalny proces i pomaga upewnić się, że kod jest dokładnie przetestowany.

GitHub Copilot Chat używa kontekstu i semantyki kodu do sugerowania asercji, które zapewniają poprawne działanie funkcji. Ułatwia również pisanie przypadków testowych dla przypadków brzegowych i warunków granic, które mogą być trudne do zidentyfikowania ręcznie. Na przykład GitHub Copilot Czat może sugerować przypadki testowe dotyczące obsługi błędów, wartości null lub nieoczekiwanych typów danych wejściowych.

Ważne

Wygenerowane przypadki testowe mogą nie obejmować wszystkich możliwych scenariuszy. Testy ręczne i przeglądy kodu są niezbędne do zapewnienia jakości kodu.

GitHub Copilot wspieranie testów jednostkowych

GitHub Copilot może pomóc w następujących zadaniach testowania:

  • Konfigurowanie platform testowania: uzyskaj pomoc przy konfigurowaniu odpowiedniej platformy testowania i rozszerzeń programu VS Code dla projektu i języka.
  • Generowanie kodu testowego: utwórz testy jednostkowe, testy integracji i kompleksowe testy obejmujące kod aplikacji.
  • Obsługa przypadków brzegowych: generowanie kompleksowych zestawów testów w celu pokrycia przypadków brzegowych i warunków błędów.
  • Naprawianie testów zakończonych niepowodzeniem: otrzymuj sugestie dotyczące naprawiania błędów testów.
  • Zachowaj spójność: personalizuj GitHub Copilot w celu generowania testów, które są zgodne z praktykami kodowania projektu.

Konfigurowanie struktury testowania

Aby przyspieszyć przepływ pracy testowania, GitHub Copilot może pomóc w skonfigurowaniu platformy testowania i rozszerzeń programu VS Code dla projektu. GitHub Copilot sugeruje odpowiednie struktury testowania na podstawie typu projektu.

  1. Otwórz widok Czat.

  2. /setupTests Wprowadź polecenie w polu wprowadzania czatu.

  3. Postępuj zgodnie ze wskazówkami GitHub Copilot, aby skonfigurować projekt.

Pisanie testów jednostkowych przy użyciu GitHub Copilot

GitHub Copilot może pomóc w pisaniu testów dla kodu aplikacji, generując kod testowy, który obejmuje bazę kodu. Obejmuje to testy jednostkowe, kompleksowe testy i testy dla przypadków brzegowych.

Testy jednostkowe można wygenerować przy użyciu następujących narzędzi GitHub Copilot:

  • Widok czatu: użyj widoku Czat, aby wygenerować testy jednostkowe dla projektu, klasy lub metody przy użyciu zapytań, planu lub agenta.
  • Czat wbudowany: użyj wbudowanego czatu, aby wygenerować testy jednostkowe dla wybranych klas lub metod.
  • Akcje inteligentne: użyj akcji inteligentnej Generuj testy, aby wygenerować testy jednostkowe dla wybranego kodu bez konieczności pisania monitu.
  • Uzupełnianie wierszy kodu: użyj tej funkcji, aby zasugerować dodanie testów jednostkowych do istniejącego przypadku testowego.

Naprawianie testów zakończonych niepowodzeniem

GitHub Copilot integruje się z Eksploratorem testów w Visual Studio Code i może pomóc w naprawianiu testów zakończonych niepowodzeniem.

  1. W Eksploratorze testów umieść kursor nad testem zakończonym niepowodzeniem.

  2. Wybierz przycisk Napraw niepowodzenie testu (ikona sparkle)

  3. Przejrzyj sugerowaną poprawkę GitHub Copilot i zastosuj ją.

Alternatywnie możesz:

  1. Otwórz widok Czat.

  2. /fixTestFailure Wprowadź polecenie slash.

  3. Postępuj zgodnie z sugestiami GitHub Copilot, aby naprawić test

Wskazówka

W przypadku korzystania z GitHub Copilot w trybie agenta agent monitoruje dane wyjściowe testu podczas uruchamiania testów i automatycznie próbuje naprawić i ponownie uruchomić testy zakończone niepowodzeniem.

Zachowaj spójność

Jeśli Twoja organizacja ma określone wymagania dotyczące testowania, możesz dostosować sposób generowania testów GitHub Copilot, aby upewnić się, że spełniają one standardy. Możesz spersonalizować sposób generowania testów przez GitHub Copilot, podając niestandardowe instrukcje. Przykład:

  • Określanie preferowanych struktur testowania
  • Definiowanie konwencji nazewnictwa dla testów
  • Ustawianie preferencji struktury kodu
  • Żądanie określonych wzorców testów lub metodologii

Obsługa testów jednostkowych w Visual Studio Code

Aby utworzyć i uruchomić testy jednostkowe języka C# w Visual Studio Code, potrzebne są następujące zasoby:

  • Zestaw SDK .NET 8.0 lub nowszy.
  • Rozszerzenie zestawu deweloperskiego języka C# dla Visual Studio Code.
  • Pakiet platformy testowej dodany do projektu.

Obsługa zestawu deweloperskiego języka C# na potrzeby testów jednostkowych

Rozszerzenie C# Dev Kit dla Visual Studio Code udostępnia bogaty zestaw funkcji ułatwia tworzenie testów jednostkowych dla projektów języka C# i zarządzanie nimi. Obejmuje ona następujące funkcje:

  • Eksplorator testów — widok drzewa przedstawiający wszystkie przypadki testowe w obszarze roboczym.
  • Uruchamianie/debugowanie przypadków testowych: funkcja do uruchamiania i debugowania przypadków testowych.
  • Wyświetlanie wyników testu — funkcja umożliwiająca wyświetlenie wyników testu.
  • Polecenia testowania — polecenia umożliwiające uruchamianie wszystkich testów, uruchamianie testów, które zakończyły się niepowodzeniem i nie tylko.
  • Ustawienia testowania — ustawienia specyficzne dla testowania.
  • Pakiet platformy testowej

Zestaw deweloperski języka C# obsługuje następujące struktury testowe:

  • xUnit
  • NUnit
  • MSTest

Zestaw deweloperski języka C# umożliwia tworzenie projektu testowego, dodawanie pakietu struktury testowej i zarządzanie testami jednostkowymi.

Włączanie platformy testowej

Paleta poleceń w Visual Studio Code zapewnia najprostszy sposób włączenia struktury testowej dla projektu. Paletę poleceń można otworzyć w następujący sposób:

  • Naciśnij Ctrl + Shift + P klucze (Windows/Linux)) lub Cmd + Shift + P (macOS).
  • Otwórz menu Widok , a następnie wybierz pozycję Paleta poleceń.
  • Otwórz widok Solution Explorer, kliknij prawym przyciskiem myszy folder rozwiązania, a następnie wybierz pozycję Nowy projekt. Ta opcja otwiera paletę poleceń z już wybraną komendą .NET:Nowy projekt....

W poniższych sekcjach opisano sposób włączania struktury testowej dla projektu języka C# przy użyciu palety poleceń.

xUnit

Otwórz paletę poleceń i wybierz pozycję .NET:Nowy projekt... następnie wybierz pozycję xUnit Test Project i podaj nazwę i lokalizację nowego projektu. To polecenie tworzy nowy projekt i katalog, który używa narzędzia xUnit jako biblioteki testowej i konfiguruje moduł uruchamiający testy, dodając następujące <PackageReference /> elementy do pliku projektu.

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

W terminalu możesz uruchomić następujące polecenie:


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

NUnit

Otwórz paletę poleceń i wybierz pozycję .NET:Nowy projekt... a następnie wybierz pozycję NUnit3 Test Project i podaj nazwę i lokalizację nowego projektu. To polecenie tworzy nowy projekt i katalog, który używa narzędzia NUnit jako biblioteki testowej i konfiguruje moduł uruchamiający testy, dodając następujące <PackageReference /> elementy do pliku projektu.

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

W terminalu uruchom następujące polecenie:

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

MSTest

Otwórz paletę poleceń i wybierz pozycję .NET:Nowy projekt... następnie wybierz pozycję MSTest Test Project i podaj nazwę i lokalizację nowego projektu. To polecenie tworzy nowy projekt i katalog, który używa biblioteki MSTest jako biblioteki testowej i konfiguruje moduł uruchamiający testy, dodając następujące <PackageReference /> elementy do pliku projektu.

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

W terminalu uruchom następujące polecenie:

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

Opracowywanie testów jednostkowych w Visual Studio Code przy użyciu czatu GitHub Copilot

Połączenie Visual Studio Code i czatu GitHub Copilot zapewnia zaawansowane środowisko do tworzenia i uruchamiania testów jednostkowych dla projektów języka C#.

Proces testowania jednostkowego można podzielić na trzy etapy:

  • Użyj Visual Studio Code, aby utworzyć projekt testowy dla testów jednostkowych.
  • Użyj GitHub Copilot Chat, aby opracować przypadki testowe jednostkowe dla projektu języka C#.
  • Użyj Visual Studio Code i zestawu deweloperskiego języka C#, aby uruchomić testy jednostkowe i zarządzać nimi.

Tworzenie projektu testowego

Należy utworzyć projekt testowy, który będzie używany do przechowywania testów jednostkowych. Aby wykonać następujące zadania, możesz użyć Visual Studio Code:

  1. Użyj palety poleceń, aby utworzyć projekt testowy korzystający z określonej platformy testowej.

  2. Użyj zintegrowanego terminalu, aby dodać odwołanie do testowego projektu.

Ten proces tworzy nowy projekt i konfiguruje moduł uruchamiający testy dla wybranej platformy.

Generowanie przypadków testów jednostkowych przy użyciu czatu GitHub Copilot

Czat GitHub Copilot może służyć do pisania przypadków testowych jednostkowych dla frameworku testowego. GitHub Copilot Chat rozpoznaje strukturę testową i styl kodowania oraz generuje pasujące fragmenty kodu. Aby wykonać następujące zadania, możesz użyć GitHub Copilot Chat:

  • Napisz przypadki testów jednostkowych dla frameworku testowego na podstawie otwartego kodu w edytorze lub wyróżnionego fragmentu kodu. GitHub Copilot identyfikuje strukturę testową i styl kodowania oraz generuje pasujące fragmenty kodu.

  • Identyfikowanie i zapisywanie przypadków testowych dla przypadków brzegowych i warunków granic, które mogą być trudne do zidentyfikowania ręcznie. Na przykład GitHub Copilot mogą sugerować przypadki testowe dotyczące obsługi błędów, wartości null lub nieoczekiwanych typów danych wejściowych.

  • Sugeruj asercji, które zapewniają poprawne działanie funkcji na podstawie kontekstu i semantyki kodu. Na przykład wygeneruj asercji, aby upewnić się, że parametry wejściowe funkcji są prawidłowe.

Podczas proszenia GitHub Copilot Chat o generowanie przypadków testów jednostkowych należy wziąć pod uwagę następujące scenariusze:

  • Jeśli pojedyncza metoda jest widoczna w całości w edytorze, możesz poprosić GitHub Copilot Chat o wygenerowanie testu jednostkowego dla metody, wpisując Write a unit test for the method in the #editor.

  • Jeśli istnieje wiele metod widocznych lub zamierzonej metody wykracza poza to, co jest widoczne w edytorze, wybierz kod, dla którego chcesz wygenerować test jednostkowy, a następnie zapytaj GitHub Copilot: #selection write a unit test for the selected code.

Uruchamianie testów jednostkowych i zarządzanie nimi w Visual Studio Code

Visual Studio Code i zestaw deweloperski języka C# udostępniają bogaty zestaw funkcji, które ułatwiają uruchamianie testów jednostkowych dla projektów języka C# i zarządzanie nimi. Przypadki testowe można uruchamiać/debugować, wyświetlać wyniki testów i zarządzać przypadkami testowymi przy użyciu Eksploratora testów.

  • Przypadki testowe uruchamiania/debugowania: zestaw deweloperski języka C# generuje skróty (zielony przycisk odtwarzania) po lewej stronie definicji klasy i metody. Aby uruchomić docelowe przypadki testowe, wybierz zielony przycisk odtwarzania. Możesz również kliknąć go prawym przyciskiem myszy, aby wyświetlić więcej opcji.

  • Eksplorator testów: Eksplorator testów to widok drzewa pokazujący wszystkie przypadki testowe w obszarze roboczym. Możesz wybrać przycisk beaker na pasku działań po lewej stronie Visual Studio Code, aby go otworzyć. Możesz również uruchamiać/debugować przypadki testowe i wyświetlać ich wyniki testów.

  • Wyświetlanie wyników testu: po uruchomieniu/debugowaniu przypadków testowych stan powiązanych elementów testu jest aktualizowany zarówno w dekoracjach edytora, jak i w Eksploratorze testów. Możesz wybrać linki w stosie, aby przejść do lokalizacji źródła.

  • Visual Studio Code polecenia testowania: istnieją polecenia testowe (na przykład Uruchom wszystkie testy), które można znaleźć, wyszukując frazę Test: w palecie poleceń.

  • Visual Studio Code ustawienia testowania: istnieją ustawienia Visual Studio Code specyficzne dla testowania, które można znaleźć, wyszukując pozycję Testowanie w edytorze ustawień.

Podsumowanie

GitHub Copilot Czat może służyć do sugerowania testów jednostkowych na podstawie określonego kodu. Jeśli na przykład określisz sygnaturę metody i treść, GitHub Copilot Chat może sugerować przypadki testowe obejmujące parametry wejściowe i oczekiwane wartości wyjściowe. Gdy projekt testowy zawiera kilka przypadków testowych, możesz użyć GitHub Copilot, aby wygenerować sugestie dotyczące uzupełniania kodu dla dodatkowych przypadków testowych. Używanie uzupełniania wierszy kodu do generowania testów jednostkowych zmniejsza powtarzalny proces i pomaga upewnić się, że kod jest dokładnie przetestowany.

GitHub Copilot Chat używa kontekstu i semantyki kodu do sugerowania asercji, które zapewniają poprawne działanie funkcji. Ułatwia również pisanie przypadków testowych dla przypadków brzegowych i warunków granic, które mogą być trudne do zidentyfikowania ręcznie. Na przykład GitHub Copilot Czat może sugerować przypadki testowe dotyczące obsługi błędów, wartości null lub nieoczekiwanych typów danych wejściowych.