Przeprowadzanie testów jednostkowych za pomocą narzędzia Eksplorator testów

Użyj Eksploratora testów do uruchamiania testów jednostkowych z poziomu programu Visual Studio lub projektów testów jednostkowych innych firm. Eksplorator testów umożliwia również grupowanie testów w kategorie, filtrowanie listy testów oraz tworzenie, zapisywanie i uruchamianie list odtwarzania testów. Eksplorator testów umożliwia również debugowanie testów jednostkowych i analizowanie pokrycia kodu w programie Visual Studio Enterprise.

Eksplorator testów może uruchamiać testy z wielu projektów testowych w rozwiązaniu i z klas testowych, które są częścią projektów kodu produkcyjnego. Projekty testowe mogą używać różnych struktur testów jednostkowych. Gdy kod testowy jest napisany dla platformy .NET, projekt testowy można napisać w dowolnym języku, który jest również przeznaczony dla platformy .NET, niezależnie od języka kodu docelowego. Natywne projekty kodu C/C++ muszą być testowane przy użyciu struktury testów jednostkowych języka C++.

Kompilowanie projektu testowego

Jeśli nie masz jeszcze projektu testowego skonfigurowanego w rozwiązaniu programu Visual Studio, musisz najpierw utworzyć i skompilować projekt testowy.

Program Visual Studio zawiera struktury testów jednostkowych firmy Microsoft dla kodu zarządzanego i natywnego. Jednak Eksplorator testów może również uruchamiać dowolną strukturę testów jednostkowych, która zaimplementowała adapter Eksploratora testów. Aby uzyskać więcej informacji na temat instalowania platform testów jednostkowych innych firm, zobacz Instalowanie platform testów jednostkowych innych firm

Uruchamianie testów w Eksploratorze testów

Podczas kompilowanie projektu testowego testy są wyświetlane w Eksploratorze testów. Jeśli Eksplorator testów nie jest widoczny, wybierz pozycję Testuj w menu programu Visual Studio, a następnie wybierz pozycję Eksplorator testów (lub naciśnij klawisze Ctrl + E, T).

Test Explorer

Test Explorer

Podczas uruchamiania, zapisywania i ponownego uruchamiania testów w Eksploratorze testów zostaną wyświetlone wyniki domyślnego grupowania projektów, przestrzeni nazw i klasy. Możesz zmienić sposób grup testów w Eksploratorze testów.

Większość pracy podczas znajdowania, organizowania i uruchamiania testów można wykonać na pasku narzędzi Eksploratora testów.

Run tests from the Test Explorer toolbar

Run tests from the Test Explorer toolbar

Uruchom testy

Możesz uruchomić wszystkie testy w rozwiązaniu, wszystkie testy w grupie lub zestaw wybranych testów. Wykonaj jedną z następujących czynności:

  • Aby uruchomić wszystkie testy w rozwiązaniu, wybierz ikonę Uruchom wszystko (lub naciśnij klawisze Ctrl + R, V).

  • Aby uruchomić wszystkie testy w grupie domyślnej, wybierz ikonę Uruchom , a następnie wybierz grupę w menu.

  • Wybierz poszczególne testy, które chcesz uruchomić, otwórz menu prawym przyciskiem myszy dla wybranego testu, a następnie wybierz polecenie Uruchom wybrane testy (lub naciśnij klawisze Ctrl + R, T).

  • Jeśli poszczególne testy nie mają zależności, które uniemożliwiają ich uruchamianie w dowolnej kolejności, włącz równoległe wykonywanie testów w menu ustawień paska narzędzi. Może to znacznie skrócić czas potrzebny na uruchomienie wszystkich testów.

Uruchamianie testów po każdej kompilacji

Aby uruchomić testy jednostkowe po każdej kompilacji lokalnej, otwórz ikonę ustawień na pasku narzędzi Eksplorator testów i wybierz pozycję Uruchom testy po kompilacji.

Wyświetlanie wyników testu

Podczas uruchamiania, zapisywania i ponownego uruchamiania testów Eksplorator testów wyświetla wyniki w grupach testów niepowodzeniem, testach z powodzeniem, pominiętych testach i nieuruchomionych testach. Okienko szczegółów u dołu lub po stronie Eksploratora testów zawiera podsumowanie przebiegu testu.

Wyświetlanie szczegółów testu

Aby wyświetlić szczegóły pojedynczego testu, wybierz test.

Test execution details

Test execution details

W okienku szczegółów testu są wyświetlane następujące informacje:

  • Nazwa pliku źródłowego i numer wiersza metody testowej.

  • Stan testu.

  • Upłynął czas, przez który metoda testowa została uruchomiona.

Jeśli test zakończy się niepowodzeniem, zostanie również wyświetlone okienko szczegółów:

  • Komunikat zwrócony przez strukturę testów jednostkowych dla testu.

  • Ślad stosu w momencie niepowodzenia testu.

Wyświetlanie kodu źródłowego metody testowej

Aby wyświetlić kod źródłowy metody testowej w edytorze programu Visual Studio, wybierz test, a następnie wybierz polecenie Otwórz test w menu prawym przyciskiem myszy (lub naciśnij klawisz F12).

Grupowanie i filtrowanie listy testów

Eksplorator testów umożliwia grupowanie testów w wstępnie zdefiniowane kategorie. Większość struktur testów jednostkowych uruchamianych w Eksploratorze testów umożliwia zdefiniowanie własnych kategorii i par kategorii/wartości w celu grupowania testów. Listę testów można również filtrować, pasując ciągi do właściwości testu.

Grupowanie testów na liście testów

Eksplorator testów umożliwia grupowanie testów w hierarchii. Domyślne grupowanie hierarchii to Project( Projekt), Namespace (Przestrzeń nazw), a następnie Class (Klasa). Aby zmienić sposób organizowania testów, wybierz przyciskTest Explorer group buttonGrupuj według i wybierz nowe kryteria grupowania.

Group tests by category in Test Explorer

Możesz zdefiniować własne poziomy hierarchii i grupy według stanu, a następnie klasę, na przykład wybierając opcje Grupuj według w preferowanej kolejności.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Eksplorator testów umożliwia grupowanie testów w hierarchii. Domyślne grupowanie hierarchii to Project( Projekt), Namespace (Przestrzeń nazw), a następnie Class (Klasa). Aby zmienić sposób organizowania testów, wybierz przyciskTest Explorer group buttonGrupuj według i wybierz nowe kryteria grupowania.

Group tests by category in Test Explorer

Możesz zdefiniować własne poziomy hierarchii i grupy według stanu, a następnie klasę, na przykład wybierając opcje Grupuj według w preferowanej kolejności.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Grupy Eksploratora testów

Grupuj opis
Czas trwania Grupuje testy według czasu wykonywania: Szybkie, Średnie i Powolne.
Stanowy Grupuje testy według wyników wykonywania: testy nieudane, pominięte testy, testy z powodzeniem, nie uruchamiane
Struktura docelowa Grupuje testy według struktury docelowej swoich projektów
Przestrzeń nazw Grupuje testy według zawierającej przestrzeni nazw.
Projekt Grupuje testy według projektu zawierającego.
Klasa Grupuje testy według zawierającej klasy.

Cechy

Cecha jest zwykle parą nazwa/wartość kategorii, ale może być również jedną kategorią. Cechy można przypisać do metod, które są identyfikowane jako metoda testowa przez strukturę testów jednostkowych. Struktura testów jednostkowych może definiować kategorie cech. Możesz dodać wartości do kategorii cech, aby zdefiniować własne pary nazw/wartości kategorii. Składnia określająca kategorie cech i wartości jest definiowana przez strukturę testów jednostkowych.

Cechy w programie Microsoft Unit Testing Framework dla kodu zarządzanego

W strukturze testów jednostkowych firmy Microsoft dla aplikacji zarządzanych zdefiniujesz parę nazw/wartości cech w atrybucie TestPropertyAttribute . Platforma testowa zawiera również następujące wstępnie zdefiniowane cechy:

Cecha opis
OwnerAttribute Kategoria Właściciel jest definiowana przez strukturę testów jednostkowych i wymaga podania wartości ciągu właściciela.
PriorityAttribute Kategoria Priorytet jest definiowana przez strukturę testów jednostkowych i wymaga podania wartości całkowitej priorytetu.
TestCategoryAttribute Atrybut TestCategory umożliwia określenie kategorii testu jednostkowego.
TestPropertyAttribute Atrybut TestProperty umożliwia zdefiniowanie pary cech kategorii/wartości.

Cechy w środowisku Microsoft Unit Testing Framework dla języka C++

Zobacz Jak używać platformy Microsoft Unit Testing Framework dla języka C++.

Tworzenie niestandardowych list odtwarzania

Możesz utworzyć i zapisać listę testów, które chcesz uruchomić lub wyświetlić jako grupę. Po wybraniu listy odtwarzania testy na liście są wyświetlane na nowej karcie Eksplorator testów. Możesz dodać test do więcej niż jednej listy odtwarzania.

Aby utworzyć listę odtwarzania, wybierz co najmniej jeden test w Eksploratorze testów. W menu prawym przyciskiem myszy wybierz polecenie Dodaj do listy odtwarzania Nowa lista odtwarzania>.

Create a playlist

Lista odtwarzania zostanie otwarta na nowej karcie Eksploratora testów. Możesz użyć tej listy odtwarzania raz, a następnie odrzucić ją lub kliknąć przycisk Zapisz na pasku narzędzi okna listy odtwarzania, a następnie wybrać nazwę i lokalizację, aby zapisać listę odtwarzania.

Playlist opens in separate test explorer tab

Aby utworzyć listę odtwarzania, wybierz co najmniej jeden test w Eksploratorze testów. Kliknij prawym przyciskiem myszy i wybierz polecenie Dodaj do listy odtwarzania Nowa lista odtwarzania>.

Aby otworzyć listę odtwarzania, wybierz ikonę listy odtwarzania na pasku narzędzi programu Visual Studio i wybierz wcześniej zapisany plik listy odtwarzania z menu.

Aby edytować listę odtwarzania, możesz kliknąć prawym przyciskiem myszy dowolny test i użyć opcji menu, aby dodać lub usunąć ją z listy odtwarzania.

Począwszy od programu Visual Studio 2019 w wersji 16.7, możesz wybrać przycisk Edytuj na pasku narzędzi. Pola wyboru będą wyświetlane obok testów pokazujących, które testy są uwzględnione i wykluczone z listy odtwarzania. Edytuj grupy zgodnie z potrzebami.

Edit Playlist button

Można również zaznaczyć lub usunąć zaznaczenie pól grup nadrzędnych w hierarchii. Ta akcja tworzy dynamiczną listę odtwarzania, która zawsze aktualizuje listę odtwarzania na podstawie testów, które znajdują się w tej grupie. Jeśli na przykład obok klasy zostanie dodany znacznik wyboru, każdy test dodany z tej klasy stanie się częścią tej listy odtwarzania. Jeśli usuniesz test z tej klasy, zostanie on usunięty z listy odtwarzania. Więcej informacji o regułach można dowiedzieć się, zapisując listę odtwarzania za pomocą przycisku Zapisz na pasku narzędzi i otwierając plik listy odtwarzania utworzony na dysku. Ten plik zawiera listę wszystkich reguł i poszczególnych testów, które tworzą listę odtwarzania.

Playlist xml file

Jeśli chcesz utworzyć listę odtwarzania dla cech, użyj następującego formatu dla biblioteki MSTest.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Użyj następującego formatu dla narzędzia xUnit. Upewnij się, że istnieje spacja między twoim TestCategory imieniem i znakiem [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
	    </Rule>
	</Rule>
  </Rule>
</Playlist>

Możesz utworzyć i zapisać listę testów, które chcesz uruchomić lub wyświetlić jako grupę. Po wybraniu listy odtwarzania testy na liście są wyświetlane na nowej karcie Eksplorator testów. Możesz dodać test do więcej niż jednej listy odtwarzania.

Aby utworzyć listę odtwarzania, wybierz co najmniej jeden test w Eksploratorze testów. W menu prawym przyciskiem myszy wybierz polecenie Dodaj do listy odtwarzania Nowa lista odtwarzania>.

Create a playlist

Lista odtwarzania zostanie otwarta na nowej karcie Eksploratora testów. Możesz użyć tej listy odtwarzania raz, a następnie odrzucić ją lub kliknąć przycisk Zapisz na pasku narzędzi okna listy odtwarzania, a następnie wybrać nazwę i lokalizację, aby zapisać listę odtwarzania.

Playlist opens in separate test explorer tab

Aby utworzyć listę odtwarzania, wybierz co najmniej jeden test w Eksploratorze testów. Kliknij prawym przyciskiem myszy i wybierz polecenie Dodaj do listy odtwarzania Nowa lista odtwarzania>.

Aby otworzyć listę odtwarzania, wybierz ikonę listy odtwarzania na pasku narzędzi programu Visual Studio i wybierz wcześniej zapisany plik listy odtwarzania z menu.

Aby edytować listę odtwarzania, możesz kliknąć prawym przyciskiem myszy dowolny test i użyć opcji menu, aby dodać lub usunąć ją z listy odtwarzania.

Począwszy od programu Visual Studio 2019 w wersji 16.7, możesz wybrać przycisk Edytuj na pasku narzędzi. Pola wyboru będą wyświetlane obok testów pokazujących, które testy są uwzględnione i wykluczone z listy odtwarzania. Edytuj grupy zgodnie z potrzebami.

Edit Playlist button

Można również zaznaczyć lub usunąć zaznaczenie pól grup nadrzędnych w hierarchii. Ta akcja tworzy dynamiczną listę odtwarzania, która zawsze aktualizuje listę odtwarzania na podstawie testów, które znajdują się w tej grupie. Jeśli na przykład obok klasy zostanie dodany znacznik wyboru, każdy test dodany z tej klasy stanie się częścią tej listy odtwarzania. Jeśli usuniesz test z tej klasy, zostanie on usunięty z listy odtwarzania. Więcej informacji o regułach można dowiedzieć się, zapisując listę odtwarzania za pomocą przycisku Zapisz na pasku narzędzi i otwierając plik listy odtwarzania utworzony na dysku. Ten plik zawiera listę wszystkich reguł i poszczególnych testów, które tworzą listę odtwarzania.

Playlist xml file

Jeśli chcesz utworzyć listę odtwarzania dla cech, użyj następującego formatu dla biblioteki MSTest.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Użyj następującego formatu dla narzędzia xUnit. Upewnij się, że istnieje spacja między twoim TestCategory imieniem i znakiem [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
	    </Rule>
	</Rule>
  </Rule>
</Playlist>

Kolumny Eksploratora testów

Grupy są również dostępne jako kolumny w Eksploratorze testów wraz z cechami, śladem stosu, komunikatem o błędzie i w pełni kwalifikowaną nazwą. Większość kolumn nie jest domyślnie widoczna i można dostosować wyświetlane kolumny i kolejność ich wyświetlania.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrowanie, sortowanie i zmienianie kolejności kolumn testowych

Kolumny można filtrować, sortować i rozmieszczać.

  • Aby filtrować pod kątem określonych cech, kliknij ikonę filtru w górnej części kolumny Traits.

    Column filter

  • Aby zmienić kolejność kolumn, kliknij nagłówek kolumny i przeciągnij go w lewo lub w prawo.

  • Aby posortować kolumnę, kliknij nagłówek kolumny. Nie wszystkie kolumny można sortować. Możesz również sortować według kolumny pomocniczej, trzymając klawisz Shift i klikając dodatkowy nagłówek kolumny.

    Column sort

Kolumny Eksploratora testów

Grupy są również dostępne jako kolumny w Eksploratorze testów wraz z cechami, śladem stosu, komunikatem o błędzie i w pełni kwalifikowaną nazwą. Większość kolumn nie jest domyślnie widoczna i można dostosować wyświetlane kolumny i kolejność ich wyświetlania.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrowanie, sortowanie i zmienianie kolejności kolumn testowych

Kolumny można filtrować, sortować i rozmieszczać.

  • Aby filtrować pod kątem określonych cech, kliknij ikonę filtru w górnej części kolumny Traits.

    Column filter

  • Aby zmienić kolejność kolumn, kliknij nagłówek kolumny i przeciągnij go w lewo lub w prawo.

  • Aby posortować kolumnę, kliknij nagłówek kolumny. Nie wszystkie kolumny można sortować. Możesz również sortować według kolumny pomocniczej, trzymając klawisz Shift i klikając dodatkowy nagłówek kolumny.

    Column sort

Wyszukiwanie i filtrowanie listy testowej

Możesz również użyć filtrów wyszukiwania Eksploratora testów, aby ograniczyć metody testowania w projektach, które są wyświetlane i uruchamiane.

Po wpiseniu ciągu w polu wyszukiwania Eksplorator testów i wybraniu klawisza Enter lista testowa jest filtrowana w celu wyświetlenia tylko tych testów, których w pełni kwalifikowane nazwy zawierają ciąg.

Aby filtrować według różnych kryteriów:

  1. Otwórz listę rozwijaną po prawej stronie pola wyszukiwania.

  2. Wybierz nowe kryteria.

  3. Wprowadź wartość filtru między cudzysłowami. Jeśli chcesz wyszukać dokładne dopasowanie w ciągu zamiast dopasowania zawierającego, użyj znaku równości (=) zamiast dwukropka (:).

Filter tests in Test Explorer

Filter tests in Test Explorer

Uwaga

Wyszukiwanie jest niewrażliwe na wielkość liter i dopasowuje określony ciąg do dowolnej części wartości kryteriów.

Kwalifikator opis
Stanowy Wyszukuje nazwy kategorii Eksploratora testów pod kątem dopasowań: testy nieudane, pominięte testy, testy z powodzeniem.
Cechy Wyszukuje zarówno kategorię cech, jak i wartość dla dopasowań. Składnia określająca kategorie cech i wartości są definiowane przez strukturę testów jednostkowych.
W pełni kwalifikowana nazwa Wyszukuje w pełni kwalifikowaną nazwę testowych przestrzeni nazw, klas i metod pod kątem dopasowań.
Projekt Wyszukuje nazwy projektów testowych pod kątem dopasowań.
Struktura docelowa Wyszukuje struktury testowe pod kątem dopasowań.
Przestrzeń nazw Przeszukuje testowe przestrzenie nazw pod kątem dopasowań.
Klasa Wyszukuje nazwy klas testowych pod kątem dopasowań.

Aby wykluczyć podzbiór wyników filtru, użyj następującej składni:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

Na przykład FullName:"MyClass" - FullName:"PerfTest" zwraca wszystkie testy, które zawierają ciąg "MyClass" w swojej nazwie, z wyjątkiem testów, które również zawierają ciąg "PerfTest" w nazwie.

Analizowanie pokrycia kodu testu jednostkowego

Możesz określić ilość kodu produktu, który jest rzeczywiście testowany przez testy jednostkowe, przy użyciu narzędzia pokrycia kodu programu Visual Studio dostępnego w wersji Visual Studio Enterprise. Pokrycie kodu można uruchamiać na wybranych testach lub we wszystkich testach w rozwiązaniu.

Aby uruchomić pokrycie kodu dla metod testowych w rozwiązaniu:

  • Kliknij prawym przyciskiem myszy w Eksploratorze testów i wybierz polecenie Analizuj pokrycie kodu dla wybranych testów

W oknie Wyniki pokrycia kodu jest wyświetlana wartość procentowa bloków kodu produktu, które były wykonywane według wiersza, funkcji, klasy, przestrzeni nazw i modułu.

Aby uzyskać więcej informacji, zobacz Używanie pokrycia kodu w celu określenia, ile kodu jest testowane.

Skróty testowe

Testy można uruchamiać w Eksploratorze testów, klikając prawym przyciskiem myszy edytor kodu w teście i wybierając polecenie Uruchom test lub używając domyślnych skrótów Eksploratora testów w programie Visual Studio. Niektóre skróty są oparte na kontekście. Oznacza to, że uruchamiają, debugują lub profilują testy na podstawie miejsca, w którym znajduje się kursor w edytorze kodu. Jeśli kursor znajduje się wewnątrz metody testowej, zostanie uruchomiona ta metoda testowa. Jeśli kursor znajduje się na poziomie klasy, wszystkie testy w tej klasie są uruchamiane. Jest to również takie samo dla poziomu przestrzeni nazw.

Częste polecenia Skróty klawiaturowe
TestExplorer.DebugAllTestsInContext Ctrl R, Ctrl++T
TestExplorer.RunAllTestsInContext Ctrl+R, T
TestExplorer.RunAllTests Ctrl+R, A
TestExplorer.RepeatLastRun Ctrl+R, L

Uwaga

Nie można uruchomić testu w klasie abstrakcyjnej, ponieważ testy są definiowane tylko w klasach abstrakcyjnych i nie są tworzone wystąpienia. Aby uruchomić testy w klasach abstrakcyjnych, utwórz klasę pochodzącą z klasy abstrakcyjnej.

Testowanie sygnału dźwiękowego

Eksplorator testów może odtwarzać dźwięk po zakończeniu przebiegu testu. Istnieją dwa dźwięki: jeden dźwięk wskazujący, że przebieg testu zakończył się pomyślnie ze wszystkimi testami zakończonymi powodzeniem, a drugi dźwięk wskazujący, że przebieg testu zakończył się co najmniej jednym testem zakończonym niepowodzeniem. Te dźwięki można skonfigurować w domyślnym oknie dialogowym dźwięku systemu Windows 11. Ta funkcja jest dostępna od wersji 3 programu Visual Studio 2019 Update 16.9 (wersja zapoznawcza 3).

  1. Otwórz domyślne okno dialogowe dźwięku systemu Windows 11.
  2. Przejdź do karty Dźwięki .
  3. Znajdź kategorię Microsoft Visual Studio . Wybierz dźwięki Powodzenie przebiegu testu lub Przebieg testu Zakończone niepowodzeniem, aby wybrać wstępnie ustawione dźwięki lub przejść do własnego pliku audio.
    Windows 11 sound dialog