Generowanie testów jednostkowych za pomocą widoku usługi GitHub Copilot Chat
Widok czatu w Visual Studio Code jest podstawowym miejscem generowania testów jednostkowych przy użyciu GitHub Copilot. W widoku Chat możesz skonfigurować środowisko testowe, wygenerować testy dla pliku lub wybranego fragmentu oraz dopracowywać wyniki, aż testy będą zgodne z konwencjami obowiązującymi w projekcie. Ta część koncentruje się na trybie agenta, który zapisuje wygenerowane testy bezpośrednio do pliku testowego, może uruchamiać powstałe testy i powtarzać ten proces po niepowodzeniach — a wszystko to na podstawie jednego polecenia na czacie. Możesz również użyć trybu Zapytaj wcześniej, aby eksplorować opcje testowania bez wprowadzania żadnych zmian w pliku.
Otwieranie widoku czatu
Otwórz widok Czat, korzystając z jednej z następujących opcji:
- Naciśnij Ctrl + Alt + I (Windows// Linux) lub Cmd + Alt + I (macOS).
- Wybierz ikonę GitHub Copilot na pasku tytułu, a następnie wybierz pozycję Toggle Chat.
Widok czatu zostanie otwarty na pasku bocznym pomocniczym i udostępnia trzy opcje konfiguracji, które mają wpływ na każdy wysyłany monit:
- Element docelowy agenta: gdzie działa agent. Wybierz pozycję Lokalne , aby interaktywnie uruchomić agenta w edytorze z pełnym dostępem do obszaru roboczego, narzędzi i modeli.
- Agent: rola, jaką wykonuje sztuczna inteligencja dla sesji. Wbudowani agenci lokalni to Ask, Plan i Agent.
- Poziom uprawnień: ile autonomii agent ma podczas wywoływania narzędzi i poleceń terminalu. Opcje to zatwierdzenia domyślne, pomijanie zatwierdzeń i rozwiązanie Autopilot.
W przypadku generowania testów jednostkowych zalecanym punktem wyjścia jest Agent z Default Approvals. Tryb agenta może edytować pliki, uruchamiać polecenia w terminalu i ponownie uruchamiać testy, dzięki czemu może przyjąć polecenie takie jak „wygeneruj testy dla tej metody” i utworzyć działający plik testowy, który wystarczy tylko przejrzeć. Domyślne zatwierdzanie pozwala Ci być na bieżąco, prosząc o potwierdzenie każdego wywołania narzędzia.
Opcjonalnie użyj trybu Zapytaj, aby najpierw eksplorować opcje testowania
Zadawaj odpowiedzi na pytania w trybie czatu bez modyfikowania plików lub wywoływania narzędzi. To sprawia, że jest to dobry wybór, gdy chcesz zaplanować sposób działania, zanim pozwolisz Agentowi cokolwiek zmienić. Użyj trybu zapytaj, jeśli chcesz:
- Porównaj proponowane przypadki testowe dla złożonej metody, zanim zdecydujesz się na określoną strukturę.
- Zidentyfikuj przypadki skrajne i warunki brzegowe, które warto uwzględnić.
- Uzyskaj zalecenie dotyczące struktury testowej lub stylu asercji.
- Zobacz przykładowy test na czacie bez zapisywania go na dysku.
Aby użyć trybu zapytań do analizy:
Otwórz widok czatu i wybierz pozycję Zapytaj z listy agentów.
Dołącz odpowiedni plik lub zaznaczenie jako kontekst (na przykład za pomocą
#selectionlub przeciągając plik).Zadaj pytanie analityczne. Przykład:
What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.Przejrzyj odpowiedź, a następnie przełącz selektor na Agent, aby wygenerować właściwe testy.
Konfigurowanie platformy testowania za pomocą polecenia /setupTests
Jeśli projekt nie ma jeszcze skonfigurowanej struktury testowej, GitHub Copilot może je zalecić i zapoznać się z krokami konfiguracji. Polecenie /setupTests slash działa w dowolnym agencie, ale tryb agenta może również instalować pakiety i tworzyć projekt testowy.
Otwórz widok Czat i wybierz pozycję Agent z selektora agenta.
/setupTestsWprowadź polecenie w polu wprowadzania czatu.Potwierdź wywołania narzędzi i polecenia terminala sugerowane przez agenta, aby zainstalować pakiety, utworzyć szkielet projektu testowego oraz polecić rozszerzenia do testowania dla programu Visual Studio Code.
/setupTests jest najbardziej przydatne podczas rozpoczynania nowego projektu testowego lub wdrażania projektu, w którym nie ma jeszcze testów.
Generowanie testów za pomocą polecenia /tests
Polecenie /tests slash generuje testy jednostkowe dla kodu, który jest obecnie aktywny w edytorze. W trybie agenta wygenerowane testy są zapisywane bezpośrednio w odpowiednim pliku testowym. GitHub Copilot wykrywa istniejącą strukturę testową i styl kodowania oraz tworzy testy zgodne.
Aby wygenerować testy dla całego pliku:
Otwórz plik kodu aplikacji, który chcesz przetestować.
Otwórz widok Czat i upewnij się, że wybrano opcję Agent .
W polu wprowadzania czatu wpisz
/tests, a następnie wszelkie dodatkowe wskazówki. Przykład:/tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.Potwierdź wywołania narzędzi, których Agent używa do odczytywania kontekstu, pisania testów i (opcjonalnie) ich uruchamiania.
Przejrzyj zmiany zastosowane przez agenta.
Agent dołącza testy do istniejącego pliku testowego, gdy jest dostępny, lub tworzy nowy plik testowy w odpowiedniej lokalizacji. Różnica jest wyświetlana w edytorze, aby można było zweryfikować każdą zmianę.
Wybierz pozycję Zachowaj lub Cofnij , aby zaakceptować lub odrzucić zmiany.
Aby wygenerować testy dla określonej metody lub bloku kodu:
Otwórz plik kodu aplikacji.
Wybierz metodę lub blok, którą chcesz przetestować.
W widoku czatu wprowadź
/tests, a następnie instrukcje odnoszące się do zaznaczenia. Przykład:/tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.Przejrzyj i zachowaj lub odrzuć wynikowe zmiany.
Generowanie testów przy użyciu monitu języka naturalnego
Nie musisz używać polecenia slash. Agent generuje testy z monitów języka naturalnego, gdy uwzględnisz wystarczającą liczbę kontekstów. Przykłady:
- "Generuj testy xUnit dla metod w tym pliku i dodaj je do projektu Calculator.Tests".
- Napisz testy jednostkowe dla metody
CalculateDiscount, uwzględniając przypadki brzegowe dla wartości ujemnych oraz zera. Uruchom testy po ich napisaniu. - "Tworzenie testów integracji dla warstwy dostępu do danych w tym module".
Ponieważ Agent może uruchamiać polecenia, możesz zawrzeć kroki weryfikacyjne w tym samym poleceniu. Poproszenie Agenta o uruchomienie testów po ich napisaniu pozwala mu wychwycić i naprawić oczywiste błędy, zanim odda Ci wyniki pracy.
Dodawanie kontekstu do monitów
Jakość wygenerowanych testów zależy od podanego kontekstu. Użyj co najmniej jednej z następujących opcji, aby dołączyć kontekst do monitu widoku czatu:
- Przycisk Dodaj kontekst : otwórz szybkie wybieranie, aby dodać pliki, foldery, symbole lub bieżący wybór edytora.
- Przeciągnij i upuść: przeciągnij pliki z widoku Eksploratora lub przeciągnij kartę edytora do widoku czatu, aby dołączyć zawartość.
-
#wzmianki: Wpisz#, a następnie nazwę pliku, folderu lub symbolu, aby dodać je jako kontekst. Użyj#selection, aby dołączyć bieżący wybór edytora lub#codebase, aby umożliwić GitHub Copilot przeszukiwanie obszaru roboczego pod kątem odpowiedniego kontekstu. - Pliki zewnętrzne: otwórz pliki markdown (na przykład wytyczne współautora lub konwencje testowe) w edytorze i dołącz je za pomocą polecenia Dodaj kontekst. Agent używa zawartości do kształtowania wygenerowanych testów.
Jeśli na przykład jedna metoda jest widoczna w edytorze, możesz zapytać: Write a unit test for the method in #editor. Jeśli wiele metod jest widocznych lub metoda docelowa wykracza poza widoczny obszar, najpierw wybierz kod i zapytaj: #selection write unit tests for the selected code.
Przejrzyj i dopracuj zmiany agenta
Mimo że Agent zapisuje testy bezpośrednio w projekcie testowym, to Ty zachowujesz kontrolę:
- Przejrzyj zmiany: każdy plik zmieniony przez Agenta otwiera się w edytorze z wyróżnionymi proponowanymi zmianami. Przejrzyj różnice przed ich zaakceptowaniem.
- Zachowaj lub Cofnij: użyj opcji Zachowaj , aby zaakceptować zmiany, lub cofnij , aby je przywrócić. Można również przywrócić poszczególne fragmenty z edytora.
- Kompilowanie i uruchamianie: Po zapisaniu zmian skompiluj projekt testowy i uruchom testy w Eksploratorze testów lub w terminalu, aby potwierdzić, że wszystko kompiluje się poprawnie, a testy przechodzą pomyślnie.
- Iteruj: użyj kolejnych poleceń w tej samej rozmowie, aby doprecyzować konkretne testy, dodać więcej przypadków testowych lub zmienić nazwy metod.
Personalizowanie generowania testów przy użyciu niestandardowych instrukcji
Jeśli twoja organizacja ma określone wymagania dotyczące testowania, możesz dostosować sposób generowania testów GitHub Copilot, aby dane wyjściowe odpowiadały standardom. Instrukcje niestandardowe umożliwiają:
- Określ preferowane struktury testowania (na przykład xUnit zamiast NUnit).
- Definiowanie konwencji nazewnictwa dla klas i metod testowych.
- Ustaw preferencje dotyczące struktury kodu, takie jak wzorzec Arrange-Act-Assert.
- Zażądaj określonych wzorców testów, takich jak sparametryzowane testy dla wartości granic.
Przechowuj niestandardowe instrukcje w pliku *.instructions.md w obszarze roboczym.
applyTo Użyj pola metadanych, aby zastosować instrukcje tylko do testowania plików. Na przykład applyTo: tests/** wartość określa zakres instrukcji dotyczących plików w tests/ katalogu. Udostępnianie pliku w kontroli źródła zapewnia każdemu deweloperowi w zespole ten sam kontekst testowania.
Ważna
Wygenerowane przypadki testowe mogą nie obejmować każdego scenariusza. Przegląd ręczny i przegląd kodu są nadal wymagane, aby zapewnić jakość testów.