Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas tworzenia aplikacji funkcja Live Unit Testing automatycznie uruchamia wszystkie objęte testy jednostkowe w tle i prezentuje wyniki i pokrycie kodu w czasie rzeczywistym. Podczas modyfikowania kodu funkcja Live Unit Testing przekazuje opinię na temat sposobu, w jaki zmiany miały wpływ na istniejące testy i czy dodany nowy kod jest objęty co najmniej jednym istniejącym testem. Ta opinia przypomina o pisaniu testów jednostkowych w trakcie poprawiania błędów lub dodawania nowych funkcji.
W przypadku korzystania z testów jednostkowych na żywo dane dotyczące stanu testów są utrwalane. Korzystanie z utrwalanych danych umożliwia testowanie jednostek na żywo, oferując lepszą wydajność podczas dynamicznego uruchamiania testów w odpowiedzi na zmiany kodu.
Testy jednostkowe na żywo są dostępne tylko w wersji Enterprise programu Visual Studio dla projektów przeznaczonych dla platformy .NET Core lub .NET Framework.
Obsługiwane platformy testowe
Funkcja Live Unit Testing współpracuje z trzema popularnymi platformami testowania jednostkowego wymienionymi w poniższej tabeli. Pokazano minimalną obsługiwaną wersję adapterów i frameworków. Wszystkie struktury testowania jednostkowego są dostępne w NuGet.org.
| Struktura testowa | Minimalna wersja adaptera programu Visual Studio | Minimalna wersja platformy |
|---|---|---|
| xUnit.net | xunit.runner.visualstudio w wersji 2.2.0-beta3-build1187 | xunit 1.9.2 |
| NUnit | NUnit3TestAdapter w wersji 3.5.1 | NUnit w wersji 3.5.0 |
| MSTest | MSTest.TestAdapter 1.1.4-preview | MSTest.TestFramework 1.0.5-preview |
Jeśli masz starsze projekty testowe oparte na narzędziu MSTest odwołujące się do programu Microsoft.VisualStudio.QualityTools.UnitTestFramework i nie chcesz przechodzić do nowszych pakietów NUGet MSTest, przeprowadź uaktualnienie do programu Visual Studio 2019 lub Visual Studio 2017.
W niektórych przypadkach może być konieczne jawne przywrócenie pakietów NuGet, do których odwołuje się projekt, aby Live Unit Testing mogło działać poprawnie. Dostępne są dwie opcje:
- Przywróć, wykonując jawną kompilację rozwiązania. Wybierz opcję Kompiluj>Kompiluj ponownie rozwiązanie w menu programu Visual Studio najwyższego poziomu.
- Przywróć pakiety w rozwiązaniu. Kliknij rozwiązanie prawym przyciskiem myszy i wybierz polecenie Przywróć pakiety NuGet.
Konfiguruj
Przy pierwszym uruchomieniu Live Unit Testing dla rozwiązania, kreator konfiguracji umożliwia skonfigurowanie, w jaki sposób Live Unit Testing powinien kompilować i uruchamiać testy.
Po zatrzymaniu funkcji Testy jednostkowe na żywo, można również otworzyć kreatora konfiguracji, przechodząc do Test>Testy jednostkowe na żywo>Konfigurowanie testów jednostkowych na żywo dla rozwiązania.
Po uruchomieniu funkcji Live Unit Testing zostanie utworzony obszar roboczy, który jest kopią oryginalnego repozytorium. Funkcja Live Unit Testing stosuje następnie wszelkie niezapisane zmiany wprowadzone w programie Visual Studio do obszaru roboczego, wykonuje kompilację, przeprowadza przebieg testu i raportuje najnowsze pokrycie kodu.
Pierwszą rzeczą, którą należy skonfigurować za pomocą kreatora, jest lokalizacja, z której mają być kopiowane pliki i do których należy je skopiować.
Katalog główny repozytorium
Katalog główny repozytorium określa, który folder zostanie skopiowany, aby utworzyć obszar roboczy Live Unit Testing. Powinien to być folder główny repozytorium, czyli powinien zawierać wszystkie źródła, pliki binarne i narzędzia. W przypadkach, gdy plik rozwiązania nie znajduje się w katalogu głównym repozytorium, może być konieczne zmianę katalogu głównego repozytorium.
Katalog główny obszaru roboczego
Obszar główny obszaru roboczego to folder, w którym funkcja Live Unit Testing przechowuje klon repozytorium. Zwróć uwagę na wyjątki wskazujące, że ścieżka jest za długa. Domyślnie katalog główny jest tworzony w folderze głównym. Jeśli jednak zwykle musisz utworzyć repozytorium na dysku C, katalog główny obszaru roboczego można dostosować do czegoś takiego jak C:\lut\Repo.
Określanie wykluczonych plików
Nie wszystkie pliki powinny być kopiowane do obszaru roboczego Live Unit Testing. Wszystkie artefakty generowane podczas kompilacji powinny być wykluczone z kopiowania, aby zwykłe kompilacje nie zakłócały kompilacji testów jednostkowych na żywo. Ponadto regularne nuget restore polecenie nie powinno zakłócać działania polecenia Live Unit Testing nuget restore .
Domyślnie funkcja Live Unit Testing wyklucza jeden z dwóch wzorców plików:
- W przypadku repozytoriów Git pliki określone w pliku gitignore nie są kopiowane do obszaru roboczego Live Unit Testing.
- W przypadku repozytoriów innych niż Git podstawowa lista folderów, takich jak bin/ i obj/, nie są kopiowane do obszaru roboczego Live Unit Testing.
W przypadku bardziej złożonych repozytoriów może być konieczne określenie własnego pliku ignoruj. Wybierz opcję "<Niestandardowy>" w kreatorze. Po wybraniu pozycji Dalej zawartość niestandardowego pliku ignorowania tworzonego przez funkcję Live Unit Testing po zakończeniu działania kreatora zostanie wyświetlona. To plik lutignore .
Uwaga / Notatka
Niestandardowy plik lutignore jest wymagany w przypadku niektórych repozytoriów Git, ponieważ istnieje możliwość zaewidencjonowania plików w repozytorium Git, które są również ignorowane przez plik gitignore . Bez niestandardowego pliku lutignore testy jednostkowe na żywo nie będą kopiować tych plików, co może prowadzić do niepowodzeń kompilacji.
Lutignore, struktura pliku
Plik lutignore używa tego samego formatu co plik gitignore . Powinna zawierać reguły zgodne z folderami lub plikami wygenerowanymi podczas kompilacji, aby nie były kopiowane do obszaru roboczego. W przypadku większości domyślnych szablonów projektów wystarczy następujący plik ignorowania:
[Bb]in
[Oo]bj
# WILL NOT COPY ANY BIN AND OBJ FOLDERS TO THE LIVE UNIT TESTING WORKSPACE
Jeśli repozytorium ma jeden folder kompilacji, plik ignoruj powinien zawierać listę tego folderu:
[Aa]rtifacts/
# WILL NOT COPY THE ARTIFACTS FOLDER TO THE LIVE UNIT TESTING WORKSPACE
Jeśli repozytorium zawiera inne narzędzia w folderze kompilacji, te narzędzia powinny zostać wykluczone w zestawie pasujących wzorców:
[Aa]rtifacts/
![Aa]rtifacts/tools/
# WILL NOT COPY THE ARTIFACTS FOLDER TO THE LIVE UNIT TESTING WORKSPACE
# HOWEVER IT WILL COPY THE TOOLS SUBFOLDER THAT MIGHT CONTAIN TOOLS AND UTILITIES
Opcje kompilacji
Drugą częścią strony konfiguracji kreatora jest konfigurowanie opcji kompilacji:
- Generowanie plików PDB: aby przyspieszyć kompilację, funkcja Live Unit Testing nie generuje plików PDB podczas kompilacji. Te pliki symboli umożliwiają przechodzenie do śladów stosu po wystąpieniu niepowodzeń testów.
- Kompilowanie przy użyciu wielu rdzeni procesora CPU: domyślnie funkcja Live Unit Testing wykonuje kompilacje przy użyciu wielu rdzeni procesora CPU, co poprawia czas kompilacji. Jeśli maszyna spowalnia lub nie można skompilować rozwiązania przy użyciu wielu procesorów, nie wybieraj tej opcji.
Opcje przebiegu testu
Ostatnią częścią strony konfiguracji kreatora jest skonfigurowanie opcji przebiegu testu:
- Limit czasu przypadku testowego: uruchomienie niektórych testów może zająć dużo czasu. Ustawienie tego pola powoduje automatyczne przerwanie przebiegów, jeśli którykolwiek z testów przekracza określony czas trwania. Testy można anulować automatycznie.
- Użyj wielu procesorów: domyślnie funkcja Live Unit Testing próbuje użyć wielu procesorów, aby przyspieszyć wydajność uruchamiania. Jeśli maszyna spowalnia lub jeśli rozwiązanie nie może uruchamiać testów równolegle, nie wybieraj tej opcji. Na przykład te scenariusze mogą wystąpić, jeśli wiele testów spróbuje zapisać/odczytać z tych samych ścieżek plików.
Więcej konfiguracji
Skonfiguruj testowanie jednostkowe na żywo, wybierając pozycję Opcje narzędzi> na pasku menu programu Visual Studio najwyższego poziomu.
W okienku Opcje rozwiń sekcję Wszystkie ustawienia>Test>Testy jednostkowe na żywo.
W oknie dialogowym Opcje, rozwiń sekcję testowanie jednostkowe na żywo>Ogólne.
Po włączeniu funkcji Live Unit Testing (zobacz Uruchamianie, wstrzymywanie i zatrzymywanie testów jednostkowych na żywo) możesz ponownie otworzyć opcje, wybierając Test>Jednostkowe badania na żywo>Opcje.
Konfigurowalne opcje obejmują:
Czy testy jednostkowe na żywo są wstrzymywane podczas kompilowania i debugowania rozwiązania.
Czy funkcja Live Unit Testing wstrzymuje się, gdy moc baterii systemu spadnie poniżej określonego progu.
Możliwość usunięcia wszystkich utrwalonych danych. Ta funkcja jest przydatna, gdy testy jednostkowe na żywo zachowują się w nieprzewidywalny lub nieoczekiwany sposób, co sugeruje, że utrwalone dane są uszkodzone.
Maksymalna ilość pamięci używanej przez procesy live unit testing.
Poziom informacji zapisanych w oknie Dane wyjściowe dla testów jednostkowych na żywo.
Opcje obejmują brak rejestrowania (Brak), tylko komunikaty o błędach (Błąd), komunikaty o błędach i komunikaty informacyjne (Informacje, wartość domyślna) lub wszystkie szczegóły (Szczegółowe).
Pełne dane wyjściowe można również wyświetlić w oknie Dane wyjściowe testów jednostkowych na żywo, przypisując wartość 1 do zmiennej środowiskowej na poziomie użytkownika o nazwie
VS_UTE_DIAGNOSTICS. Następnie uruchom ponownie program Visual Studio.Aby przechwycić szczegółowe komunikaty dziennika programu MSBuild z funkcji Live Unit Testing w pliku, ustaw zmienną środowiskową na poziomie użytkownika
LiveUnitTesting_BuildLogna nazwę pliku, który będzie zawierał dziennik.
Dostosuj kompilację do Live Unit Testing
W przypadku bardziej złożonych rozwiązań może być konieczne dalsze dostosowanie kompilacji. Na przykład może nie być konieczne skompilowanie plików tłumaczenia podczas przebiegów testów. Aby przyspieszyć kompilacje, możesz wyłączyć kompilację pliku tłumaczenia za pomocą funkcji Live Unit Testing. Można to zrobić, manipulując plikami projektu.
Dodaj przesłonięcia dla Live Unit Testing
Jeśli twoje rozwiązanie wymaga niestandardowych kroków budowania dla celów instrumentacji (Live Unit Testing), które nie są potrzebne przy "zwykłym" budowaniu bez instrumentacji, możesz dodać kod do swojego projektu lub plików .targets, które sprawdzają właściwość BuildingForLiveUnitTesting i wykonują niestandardowe kroki przed i po budowaniu.
Na przykład możesz napisać następujący przykład, aby dodać inny obiekt docelowy wykonywany tylko na potrzeby testów jednostkowych na żywo:
<Target Name="GenerateNuGetPackages" BeforeTargets="AfterBuild" Condition="'$(BuildingForLiveUnitTesting)' == 'true'">
<Exec Command='"$(MSBuildThisFileDirectory)..\tools\GenPac" '/>
</Target>
Za pomocą BuildingForLiveUnitTesting właściwości można wyłączyć niektóre zadania, które nie powinny być wykonywane na potrzeby kompilacji testowych. Na przykład "Live Unit Testing" ustawia <RunAnalyzers>false</RunAnalyzers> na wyłączenie analizatorów dla testów.
Zależności testów jednostkowych na żywo
Możliwe, że nie wszystkie pliki zostały skopiowane, które są wymagane do uruchomienia testów. Funkcja Live Unit Testing tworzy oddzielny folder, w którym uruchamia testy. To rozmieszczenie umożliwia tworzenie kompilacji podczas uruchamiania testów, ale nie wszystkie pliki z folderu kompilacji są kopiowane do folderu testowego.
Zazwyczaj należy dodać zależności testowe z jednego z dwóch powodów:
- Testy zależą od plików w drzewie źródłowym. Na przykład testy sprawdzają zawartość plików resx lub mogą odczytywać niektóre pliki konfiguracji.
- Testy zależą od niektórych bibliotek, do których się odwołują. Na przykład test uruchamia plik wykonywalny utworzony jako zależność.
Uwaga / Notatka
Zależności testowe muszą istnieć w katalogu określonym jako katalog główny repozytorium w kreatorze instalacji.
W obu przypadkach testy jednostkowe na żywo domyślnie nie będą kopiować tych plików w celu zminimalizowania liczby plików, które muszą zostać skopiowane w celu uruchomienia testu. Należy jawnie określić te pliki przy użyciu LiveUnitTestingTestDependency właściwości , jeśli są one potrzebne do uruchomienia testowego. Załóżmy na przykład, że mamy następujący układ:
SRC/
CONSOLE_UTILITY/
TEST_PROJECT/
ARTIFACTS/
CONSOLE_UTILITY/NET472/DEBUG/
TEST_PROJECT/NET472/DEBUG/
Domyślnie podczas kompilowania tych projektów z Live Unit Testing, do folderu testowego kopiowane jest tylko Artifacts/Test_Project. Aby dodać źródła lub console_utility do folderu testowego, dodaj następujący przykład do test_project.csproj.
<LiveUnitTestingTestDependency Include=”$(RepoRoot)/Src/ConsoleUtility” />
<LiveUnitTestingTestDependency Include=”$(RepoRoot)/Artifacts/ConsoleUtility/net472/$(Configuration)/</LiveUnitTestingTestDependency” />
Uruchamianie, wstrzymywanie i zatrzymywanie
Aby włączyć testowanie jednostkowe na żywo, wybierz Test>Testowanie jednostkowe na żywo>Start w menu głównym programu Visual Studio. Po włączeniu funkcji Live Unit Testing opcje dostępne w menu Live Unit Testing zmieniają się z jednego elementu, Start, na Wstrzymaj i Zatrzymaj:
Wstrzymywanie tymczasowo zawiesza testy jednostkowe na żywo.
Po wstrzymaniu funkcji Live Unit Testing wizualizacja pokrycia nie jest wyświetlana w edytorze, ale wszystkie zebrane dane są zachowywane. Aby wznowić testowanie jednostkowe na żywo, wybierz pozycję Kontynuuj w menu Live Unit Testing . Funkcja Live Unit Testing wykonuje niezbędną pracę, aby nadrobić zaległości we wszystkich modyfikacjach, które były wprowadzone podczas jego wstrzymania, i odpowiednio aktualizuje glify.
Zatrzymaj całkowicie testy jednostkowe na żywo. Funkcja Live Unit Testing odrzuca wszystkie zebrane dane.
Jeśli uruchomisz testy jednostkowe na żywo w rozwiązaniu, które nie zawiera projektu testu jednostkowego, opcje Wstrzymaj i Zatrzymaj są wyświetlane w menu Live Unit Testing, ale testy jednostkowe na żywo nie są uruchamiane. W oknie Dane wyjściowe zostanie wyświetlony komunikat rozpoczynający się "Żadne obsługiwane adaptery testów nie są używane przez to rozwiązanie...".
W dowolnym momencie możesz tymczasowo wstrzymać lub całkowicie zatrzymać testy jednostkowe na żywo. Możesz na przykład chcieć wykonać te akcje, jeśli jesteś w trakcie refaktoryzacji i wiesz, że testy zostaną przerwane przez jakiś czas.
Dołączanie i wykluczanie projektów testowych i metod testowych
Po uruchomieniu Funkcji Testów Jednostkowych na Żywo zostanie wyświetlone okno narzędzia Live Unit Testing, w którym pojawi się monit proszący o wybranie zestawu testów, które mają być testowane podczas testów na żywo.
W przypadku mniejszych rozwiązań, w których uruchamianie testów jednostkowych zajmuje bardzo mało czasu, wybierz pozycję Uwzględnij wszystkie testy, co sprawia, że testy jednostkowe na żywo uruchamiają wszystkie testy.
W przypadku większych rozwiązań z wieloma projektami testowymi można kontrolować, które projekty i poszczególne metody w projekcie uczestniczą w testach jednostkowych na żywo, edytując listę odtwarzania. Jeśli na przykład masz rozwiązanie z setkami projektów testowych, możesz wybrać docelowy zestaw projektów testowych, aby wziąć udział w testach jednostkowych na żywo.
Możesz wybrać, które testy jednostkowe na żywo powinny być uruchamiane, edytując playlistę Live Unit Testing, funkcję działającą podobnie jak playlisty w Eksploratorze testów.
Istnieje wiele sposobów na edytowanie listy odtwarzania dla Live Unit Testing.
- Okno narzędzia Live Unit Testing
- Okno edytora kodu
- Eksplorator rozwiązań
- Programowo w kodzie testowym
Funkcja Live Unit Testing zapisuje stan dołączania/wykluczania jako ustawienia użytkownika i zapamiętuje go po zamknięciu i ponownym otwarciu rozwiązania.
Okno narzędzia Live Unit Testing
Można użyć edytora listy odtwarzania dla karty Live Unit Testing do dołączania lub wykluczania projektów, przestrzeni nazw lub klas z procesów testowania. Wybierz pozycję Edytuj listę odtwarzania w oknie narzędzia.
Możesz wybrać lub wyczyścić elementy widoku drzewa, aby uwzględnić lub wykluczyć testy. Jeśli na przykład sprawdzisz pojedynczy test, Live Unit Testing uruchomi go na zmianach. Jeśli wybierzesz klasę, wszystkie testy w tej klasie będą uruchamiane i wszystkie nowe testy dodane do tej klasy również będą uruchamiane.
Okno edytora kodu
Możesz użyć okna edytora kodu, aby uwzględnić lub wykluczyć poszczególne metody testowania. Kliknij prawym przyciskiem myszy podpis lub treść metody testowej w oknie edytora kodu i wybierz jedną z następujących opcji:
- Testowanie jednostkowe na żywo> Uwzględnij <wybraną metodę>
- Testy jednostkowe> na żywoWyklucz <wybraną metodę>
- Testowanie jednostkowe na żywo>Wyklucz wszystkie oprócz <wybranej metody>
Eksplorator rozwiązań
Aby wybrać poszczególne projekty w testach jednostkowych, wykonaj następujące kroki po uruchomieniu testów jednostkowych na żywo:
- Kliknij prawym przyciskiem myszy rozwiązanie w Eksploratorze rozwiązań i wybierz pozycjęWyklucz testowanie > na żywo, aby wykluczyć całe rozwiązanie.
- Kliknij prawym przyciskiem na każdy projekt testowy, który chcesz uwzględnić w testach, a następnie wybierz Testowanie jednostkowe na żywo>Uwzględnij.
Programistycznie w kodzie testowym
Można zastosować atrybut ExcludeFromCodeCoverageAttribute do programistycznego wykluczenia metod, klas lub struktur z raportowania ich pokrycia w testach jednostkowych na żywo.
Użyj następujących atrybutów, aby wykluczyć poszczególne metody z testów jednostkowych na żywo:
-
xUnit:
[Trait("Category", "SkipWhenLiveUnitTesting")] -
NUnit:
[Category("SkipWhenLiveUnitTesting")] -
MSTest:
[TestCategory("SkipWhenLiveUnitTesting")]
Użyj następujących atrybutów, aby wykluczyć cały zespół testów z funkcji Live Unit Testing:
-
xUnit:
[assembly: AssemblyTrait("Category", "SkipWhenLiveUnitTesting")] -
NUnit:
[assembly: Category("SkipWhenLiveUnitTesting")] -
MSTest:
[assembly: TestCategory("SkipWhenLiveUnitTesting")]
Wyświetlanie wizualizacji pokrycia
Po włączeniu funkcji Live Unit Testing aktualizuje każdy wiersz kodu w edytorze programu Visual Studio, aby pokazać, czy kod, który piszesz, jest objęty testami jednostkowym i czy testy, które go obejmują, przechodzą.
Na poniższej ilustracji przedstawiono wiersze kodu z zaliczonymi i niezaliczonymi testami oraz wiersze kodu, które nie są objęte testami. Linie oznaczone zielonym "✓" są objęte tylko przez udane testy. Wiersze z czerwonym "x" są objęte co najmniej jednym testem zakończonym niepowodzeniem. Linie z niebieskim "➖" nie są objęte żadnym testem.
Wizualizacja pokrycia testów jednostkowych na żywo jest aktualizowana natychmiast po zmodyfikowaniu kodu w edytorze kodu. Podczas przetwarzania edycji wizualizacja zmienia się, aby wskazać, że dane nie są aktualne, poprzez dodanie obrazu minutnika w formie okręgu pod symbolami zaliczonymi, niezaliczonymi i nieobjętymi, jak pokazano na poniższej ilustracji.
Uzyskiwanie informacji o stanie testu
Przesuwając wskaźnik myszy nad symbolem oznaczającym zaliczenie lub niepowodzenie w oknie kodu, można zobaczyć, ile testów dotyczy tego wiersza. Aby wyświetlić stan poszczególnych testów, wybierz symbol.
Oprócz podawania nazw i wyników testów etykietka narzędzia umożliwia ponowne uruchamianie lub debugowanie zestawu testów. Jeśli wybierzesz co najmniej jeden test w etykietce narzędzia, możesz również uruchomić lub debugować tylko te testy. Ta akcja umożliwia debugowanie testów bez konieczności opuszczania okna kodu.
Podczas debugowania oprócz obserwowania wszystkich punktów przerwania, które mogły już być ustawione, wykonywanie programu jest wstrzymywane, gdy debuger wykonuje metodę Assert zwracającą nieoczekiwany wynik.
Po umieszczeniu wskaźnika myszy na teście, który zakończył się niepowodzeniem w etykietce narzędzia, rozwija się, aby uzyskać więcej informacji o niepowodzeniu, jak pokazano na poniższej ilustracji. Aby przejść bezpośrednio do testu, który zakończył się niepowodzeniem, kliknij go dwukrotnie w etykietce narzędzia.
Po przejściu do testu, które zakończyły się niepowodzeniem, funkcja Live Unit Testing wizualnie wskazuje w podpisie metody testy, które mają:
- Zaliczony (wskazywany przez w połowie wypełnioną zlewkę wraz z zielonym "✓").
- Niepowodzenie (jest wskazywane przez do połowy pełną kolbę wraz z czerwonym "🞩").
- Nie są zaangażowane w live unit testing (wskazywane przez pół pełnego beakera wraz z niebieskim "➖").
Metody nietestowe nie są identyfikowane z symbolem. Na poniższej ilustracji przedstawiono wszystkie cztery typy metod.
Diagnozowanie i poprawianie błędów testów
W teście, który zakończył się niepowodzeniem, można łatwo debugować kod produktu, wprowadzać zmiany i kontynuować tworzenie aplikacji. Ponieważ testy jednostkowe na żywo są uruchamiane w tle, nie trzeba zatrzymywać i uruchamiać ponownie testów jednostkowych na żywo podczas debugowania, edytowania i kontynuowania cyklu.
Na przykład niepowodzenie testu pokazane na poprzedniej ilustracji zostało spowodowane przez nieprawidłowe założenie w metodzie testowej, że znaki niealfabetyczne zwracają true, gdy są przekazywane do metody System.Char.IsLower. Po skorygowaniu metody testowej wszystkie testy powinny zostać wykonane pomyślnie. Nie musisz wstrzymywać ani zatrzymywać testów jednostkowych na żywo.
Okno testowania jednostkowego na żywo
Testy jednostkowe na żywo, podobnie jak w Eksploratorze testów, udostępnia interfejs umożliwiający uruchamianie i debugowanie testów oraz analizowanie wyników testów. Po włączeniu funkcji Live Unit Testing stan testów jednostkowych w Eksploratorze testów jest natychmiast aktualizowany. Nie trzeba jawnie uruchamiać testów jednostkowych.
Gdy funkcja Live Unit Testing nie jest włączona lub jest zatrzymana, funkcja Live Unit Testing wyświetla stan testów jednostkowych podczas ostatniego uruchomienia testu. Po ponownym uruchomieniu testów jednostkowych na żywo wymagana jest zmiana kodu źródłowego w celu ponownego uruchomienia testów.
Możesz rozpocząć testowanie jednostkowe na żywo, wybierając Test>Testowanie jednostkowe na żywo>Start w menu programu Visual Studio najwyższego poziomu. Możesz również otworzyć okno Live Unit Testing przy użyciu Widok>Inne okna>Okno testów jednostkowych na żywo.
Możesz zauważyć, że w oknie Live Unit Testing niektóre testy są wyblakłe. Na przykład, gdy zatrzymasz i ponownie uruchomisz Live Unit Testing, okno wyblaknie wszystkie testy, jak pokazano na poniższej ilustracji.
Wyniki testu faded-out wskazują, że test nie był częścią najnowszego przebiegu testu jednostkowego na żywo. Testy są uruchamiane tylko wtedy, gdy zostanie wykryta zmiana testu lub zależności testu. Jeśli nie ma żadnych zmian, pozwala uniknąć niepotrzebnego uruchamiania testu. W tym przypadku szary wynik testu jest nadal "aktualny", chociaż nie był częścią najnowszego przebiegu.
Możesz ponownie uruchomić wszystkie testy, które pojawiają się wyblakłe, wprowadzając zmianę kodu.
Istnieją pewne różnice między automatycznym uruchamianiem funkcji Live Unit Testing i aktualizowaniem wyników testów a także jawnym uruchamianiem testów z Eksploratora testów. Te różnice obejmują:
- Uruchamianie lub debugowanie testów w oknie Eksplorator testów uruchamia zwykłe pliki binarne. Testy jednostkowe na żywo uruchamiają pliki binarne z instrumentacją.
- Testy jednostkowe na żywo nie tworzą nowej domeny aplikacji do uruchamiania testów. Zamiast tego uruchamia testy z domeny domyślnej. Testy są uruchamiane w oknie Eksplorator testów , aby utworzyć nową domenę aplikacji.
- Testy jednostkowe na żywo uruchamiają testy w każdym zestawie testowym sekwencyjnie. W oknie Eksplorator testów możesz uruchomić wiele testów równolegle.
Anulowanie przebiegów testów jednostkowych na żywo
Testy jednostkowe na żywo są uruchamiane przy każdym wprowadzeniu zmian w kodzie. Jeśli przebieg jest w toku i dokonujesz zmian w kodzie, ciągłe testy jednostkowe kolejkują kolejny przebieg, czekając na ukończenie pierwszego.
Za każdym razem, gdy zapisujesz pliki, funkcja Live Unit Testing anuluje pierwszy przebieg i natychmiast planuje zamiast tego przebieg w kolejce. Ten proces pomaga w scenariuszach, w których wykonanie pierwszego uruchomienia zajęłoby dużo czasu.