Eksplorator testów programu Visual Studio — często zadawane pytania

Dynamiczne odnajdywanie testów

Eksplorator testów nie odnajduje moich testów, które są definiowane dynamicznie. (Na przykład teorie, karty niestandardowe, cechy niestandardowe, #ifdefs itp.) Jak mogę odnaleźć te testy?

Skompiluj projekt w celu uruchomienia odnajdywania opartego na zestawie.

Odnajdywanie testów w czasie rzeczywistym to odnajdywanie testowe oparte na źródle. Nie można odnaleźć testów korzystających z teorii, kart niestandardowych, cech niestandardowych, #ifdef instrukcji i nie tylko, ponieważ są one zdefiniowane w czasie wykonywania. Kompilacja jest wymagana do dokładnego znalezienia tych testów. W programie Visual Studio 2017 w wersji 15.6 lub nowszej odnajdywanie oparte na zestawie (tradycyjnym odnajdywaniem) jest uruchamiane tylko po kompilacjach. To ustawienie oznacza, że odnajdywanie testów w czasie rzeczywistym znajduje dowolną liczbę testów podczas edytowania, a odnajdywanie oparte na zestawie umożliwia dynamiczne pojawienie się testów po kompilacji. Odnajdywanie testów w czasie rzeczywistym poprawia czas odpowiedzi, ale nadal pozwala uzyskać kompletne i dokładne wyniki po kompilacji.

Symbol Eksploratora testów "+" (plus)

Co oznacza symbol "+" (plus) wyświetlany w górnym wierszu Eksploratora testów?

Symbol "+" (plus) wskazuje, że po uruchomieniu odnajdywania opartego na zestawie można odnaleźć więcej testów. Ten symbol pojawia się, jeśli w projekcie zostaną wykryte dynamicznie zdefiniowane testy.

Plus symbol summary line

Odnajdywanie testów w czasie rzeczywistym

Testy są teraz wyświetlane w Eksploratorze testów podczas wpisywania bez konieczności kompilowania projektu. Co się zmieniło?

Ta funkcja jest nazywana odnajdywaniem testów w czasie rzeczywistym. Używa analizatora Roslyn do znajdowania testów i wypełniania Eksploratora testów w czasie rzeczywistym bez konieczności kompilowania projektu. Aby uzyskać więcej informacji na temat zachowania odnajdywania testów dla dynamicznie zdefiniowanych testów, takich jak teorie lub cechy niestandardowe, zobacz Dynamiczne odnajdywanie testów.

Zgodność odnajdywania testów w czasie rzeczywistym

Jakie języki i struktury testowe mogą używać odnajdywania testów w czasie rzeczywistym?

Odnajdywanie testów w czasie rzeczywistym działa tylko dla języków zarządzanych (C# i Visual Basic), ponieważ jest kompilowany przy użyciu kompilatora Roslyn. Na razie odnajdywanie testów w czasie rzeczywistym działa tylko dla platform xUnit, NUnit i MSTest.

Dzienniki Eksploratora testów

Jak włączyć dzienniki dla Eksploratora testów?

Przejdź do pozycji Narzędzia>Opcje>Testuj i znajdź sekcję Rejestrowanie.

Odnajdywanie testów platformy UWP

Dlaczego moje testy w projektach platformy UWP nie zostaną odnalezione do momentu wdrożenia aplikacji?

Testy platformy UWP dotyczą innego środowiska uruchomieniowego podczas wdrażania aplikacji. Oznacza to, że w celu dokładnego znajdowania testów dla projektów platformy UWP nie tylko trzeba kompilować projekt, ale także wdrażać.

Sortowanie Eksploratora testów

Jak działają wyniki sortowania testów w widoku hierarchii?

Widok hierarchii sortuje testy alfabetycznie, a nie według wyniku. Poprzednia grupa według ustawień posortowała wyniki testu według wyniku, a następnie alfabetycznie. Nadal można włączyć sortowanie według wyniku, klikając prawym przyciskiem myszy nagłówek kolumny w Eksploratorze testów, włączając kolumnę State, a następnie klikając nagłówek kolumny State, aby zastosować sortowanie w tej kolumnie. Możesz przekazać opinię na temat projektu w tym problemie z usługą GitHub.

Widok hierarchii Eksploratora testów

W widoku hierarchii są przekazywane, nieudane, pominięte i nie uruchamiane ikony obok grup węzłów nadrzędnych. Co oznaczają te ikony?

Ikony obok grup projektu, przestrzeni nazw i klas pokazują stan testów w ramach tego grupowania. Zobacz poniższą tabelę.

Test Explorer Hierarchy Icons

Wyszukiwanie według ścieżki pliku

W polu wyszukiwania Eksplorator testów nie ma już filtru "Ścieżka pliku".

Filtr ścieżki pliku w polu wyszukiwania Eksplorator testów został usunięty w programie Visual Studio 2017 w wersji 15.7. Ta funkcja miała niskie użycie, a Eksplorator testów może szybciej pobierać metody testowe, pomijając tę funkcję. Jeśli ta zmiana przerywa przepływ programowania, poinformuj nas, przesyłając opinię na temat społeczności deweloperów.

Usuwanie nieudokumentowanych interfejsów

Niektóre interfejsy API związane z testami nie są już obecne w programie Visual Studio 2019. Co się zmieniło?

W programie Visual Studio 2019 niektóre interfejsy API okien testowych, które zostały wcześniej oznaczone jako publiczne, ale nigdy nie zostały oficjalnie udokumentowane, zostaną usunięte. Zostały one oznaczone jako "przestarzałe" w programie Visual Studio 2017, aby umożliwić konserwatorom rozszerzeń wczesne ostrzeżenie. Z naszej wiedzy bardzo niewiele rozszerzeń znalazło te interfejsy API i podjęła zależność od nich. Należą do nichIGroupByProvider: , , IGroupByProvider<T>, KeyComparerISearchFilterTokenISearchFilter, ISearchToken, i .SearchFilterTokenType Jeśli ta zmiana wpłynie na rozszerzenie, daj nam znać, zgłaszając usterkę w społeczności deweloperów.

Dokumentacja narzędzia NuGet adaptera testowego

W programie Visual Studio 2017 w wersji 15.8 moje testy są wykrywane, ale nie są wykonywane.

Wszystkie projekty testowe muszą zawierać odwołanie NuGet adaptera testowego platformy .NET do pliku csproj. Jeśli tak nie jest, w projekcie zostaną wyświetlone następujące dane wyjściowe testu, jeśli odnajdywanie przez rozszerzenie adaptera testowego zostanie uruchomione po kompilacji lub jeśli użytkownik spróbuje uruchomić wybrane testy:

Projekt {} testowy nie odwołuje się do żadnej karty NuGet platformy .NET. Odnajdywanie lub wykonywanie testów może nie działać w przypadku tego projektu. Zaleca się odwołanie do kart testowych NuGet w każdym projekcie testowym platformy .NET w rozwiązaniu.

Zamiast używać rozszerzeń adaptera testowego, projekty są wymagane do korzystania z pakietów NuGet adaptera testowego. To wymaganie znacznie poprawia wydajność i powoduje mniej problemów z ciągłą integracją. Przeczytaj więcej o wycofaniu rozszerzenia adaptera testowego platformy .NET w informacjach o wersji.

Nie można odnaleźć narzędzia TestContainer platformy UWP

Moje testy platformy UWP nie są już wykonywane w programie Visual Studio 2017 w wersji 15.7 lub nowszej.

Ostatnie projekty testowe platformy UWP określają właściwość kompilacji platformy testowej, która umożliwia lepszą wydajność identyfikowania aplikacji testowych. Jeśli masz projekt testowy platformy UWP, który został zainicjowany przed programem Visual Studio w wersji 15.7, może zostać wyświetlony ten błąd w testach wyjściowych>:

System.AggregateException: wystąpił co najmniej jeden błąd. >--- System.InvalidOperationException: Nie można odnaleźć {} następującego elementu TestContainer w witrynie Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()

Aby naprawić ten błąd:

  • Zaktualizuj właściwość kompilacji projektu testowego przy użyciu następującego kodu:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
  • Zaktualizuj wersję zestawu SDK TestPlatform przy użyciu następującego kodu:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />

Korzystanie z funkcji w wersji zapoznawczej

W programie Visual Studio 2019 możesz wybrać funkcje w wersji zapoznawczej w obszarze Narzędzia >Opcje > środowiska > w wersji zapoznawczej.