Eksplorator testów programu Visual Studio — często zadawane pytania
Dynamiczne odkrywanie testów
Eksplorator testów nie odnajduje testów, które są definiowane dynamicznie, takich jak teorie, niestandardowe adaptery, niestandardowe cechy oraz instrukcje #ifdef. Jak upewnić się, że znajduje te testy?
Skompiluj projekt, aby uruchomić wykrywanie oparte na zestawach.
Odkrywanie testów w czasie rzeczywistym to odkrywanie testów oparte na źródle. Nie można odnaleźć testów korzystających z teorii, niestandardowych adapterów, niestandardowych cech, instrukcji #ifdef
i nie tylko, ponieważ są one zdefiniowane w czasie wykonywania. Kompilacja jest wymagana, aby dokładnie zidentyfikować te testy.
W programie Visual Studio 2017 w wersji 15.6 lub nowszej, odkrywanie oparte na zestawach (tradycyjne odkrywanie) jest uruchamiane tylko po kompilacji. To ustawienie oznacza, że odnajdywanie testów w czasie rzeczywistym znajduje jak najwięcej testów podczas, gdy edytujesz. Odnajdywanie oparte na zestawach umożliwia dynamiczne definiowanie testów wyświetlanych po kompilacji.
Odnajdywanie testów w czasie rzeczywistym poprawia czas odpowiedzi, ale nadal pozwala uzyskać kompletne i dokładne wyniki po kompilacji.
Symbol plus (+) Eksploratora testów
Co oznacza symbol plusa, który pojawia się w górnym rzędzie Eksploratora testów?
Symbol plus (+) wskazuje, że po kompilacji można odnaleźć więcej testów dzięki uruchomieniu wykrywania opartego na modułach. Ten symbol pojawia się, jeśli w projekcie zostaną wykryte dynamicznie zdefiniowane testy.
Odkrywanie 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 nazywa się odnajdywanie 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 w zakresie odnajdywania testów dla dynamicznie określonych testów, takich jak teorie lub cechy niestandardowe, zobacz Dynamiczne Odnajdywanie Testów wcześniej w tym artykule.
Kompatybilność z odnajdywaniem testów w czasie rzeczywistym
Jakie języki i frameworki testowe mogą wykorzystywać odkrywanie testów w czasie rzeczywistym?
Odkrywanie testów w czasie rzeczywistym działa tylko dla języka zarządzanego (C# i Visual Basic), ponieważ jest zbudowane za pośrednictwem kompilatora Roslyn. Na razie odnajdywanie testów w czasie rzeczywistym działa tylko dla platform xUnit, NUnit i MSTest.
Dzienniki Eksploratora testów
Jak mogę włączyć dzienniki dla Eksploratora testów?
Przejdź do Tools>Options>Test i znajdź tam sekcję Rejestrowanie.
Wykrywanie testów UWP
Dlaczego moje testy w projektach platformy UWP nie są wykrywane, dopóki nie wdrożym mojej aplikacji?
Testy platformy uniwersalnej systemu Windows (UWP) są przeznaczone dla innego środowiska uruchomieniowego podczas wdrażania aplikacji. Aby znaleźć testy dokładnie dla projektów platformy UWP, należy nie tylko skompilować projekt, ale także wdrożyć go.
Sortowanie Eksploratora testów
Jak działają wyniki sortowania testów w widoku hierarchii?
Widok hierarchii sortuje testy alfabetycznie, a nie według wyniku. Poprzednie ustawienia grupowania powodowały, że wyniki testów były sortowane najpierw według wyniku, a potem alfabetycznie. Można nadal 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 wybierając nagłówek kolumny State, aby zastosować sortowanie w tej kolumnie. Możesz przekazać opinię na temat projektu w tym problemie usługi GitHub.
Widok hierarchii Eksploratora testów
W widoku hierarchii znajdują się ikony zaliczone, nieudane, pominięte i nieuruchomione obok grupowań węzłów nadrzędnych. Co oznaczają te ikony?
Ikony obok grupowania Projekt, Przestrzeń nazwi Klasa pokazują stan testów w każdym z tych grupowań. Zobacz poniższą tabelę.
Wyszukiwanie według ścieżki pliku
Dlaczego w polu wyszukiwania Eksplorator testów nie ma już filtru ścieżki 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 Twój przepływ pracy, przekaż nam swoją opinię na temat Developer Community.
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 zapewnić opiekunom rozszerzeń wczesne ostrzeżenie. Z tego, co wiemy, bardzo mało rozszerzeń znalazło te interfejsy API i uzależniło się od nich. Obejmują one IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
oraz SearchFilterTokenType
.
Jeśli ta zmiana wpłynie na rozszerzenie, poinformuj nas o tym, zgłaszając usterkę w witrynie Developer Community.
Odwołanie do adaptera testowego NuGet
Dlaczego testy nie są uruchamiane w programie Visual Studio 2017 w wersji 15.8, mimo że zostały odnalezione?
Wszystkie projekty testowe muszą zawierać odwołanie NuGet adaptera testowego platformy .NET do pliku csproj. Jeśli te warunki nie zostaną spełnione, pojawią się następujące wyniki testów w kontekście projektu, jeśli odnajdywanie przez rozszerzenie adaptera testowego rozpocznie się po kompilacji lub jeśli spróbujesz uruchomić wybrane testy:
Testowy projekt {} nie odwołuje się do żadnego adaptera NuGet dla platformy .NET. Odkrywanie lub wykonywanie testów może nie działać w tym projekcie. Zaleca się użycie adapterów testowych NuGet w każdym projekcie testowym .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ą. Dowiedz się więcej na temat wycofywania rozszerzeń adaptera testowego platformy .NET w notatkach o wydaniu .
Nie można odnaleźć narzędzia TestContainer platformy UWP
Dlaczego moje testy platformy UWP nie są już uruchomione w programie Visual Studio 2017 w wersji 15.7 lub nowszej?
Ostatnie projekty testowe platformy UWP określają właściwość kompilacji, 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, ten błąd może zostać wyświetlony w testach wyjściowych>:
System.AggregateException: wystąpił co najmniej jeden błąd. ---> System.InvalidOperationException: Nie odnaleziono następującego elementu TestContainer {} w Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()
Aby naprawić ten błąd:
Zaktualizuj właściwość kompilacji dla projektów testowych 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)" />
Funkcje w wersji zapoznawczej
Jak korzystać z funkcji w wersji zapoznawczej w programie Visual Studio 2019?
W programie Visual Studio 2019 możesz wyrazić zgodę na funkcje w wersji zapoznawczej w narzędziach Tools>Options>Environment>Preview Features.