Vanliga frågor och svar om Visual Studio Test Explorer
Dynamisk testidentifiering
Test Explorer identifierar inte mina tester som är dynamiskt definierade (till exempel teorier, anpassade adaptrar, anpassade funktioner och #ifdef-instruktioner). Hur kan jag se till att den identifierar dessa tester?
Skapa ditt projekt för att köra sammanställningsbaserad identifiering.
Identifiering av realtidstest är källbaserad testidentifiering. Det går inte att identifiera tester som använder teorier, anpassade adaptrar, anpassade karakteristika, #ifdef
-instruktioner med mera eftersom de definieras under körning. En version krävs för att dessa tester ska kunna identifieras korrekt.
I Visual Studio 2017 version 15.6 och senare körs den assembly-baserade upptäckningen (den traditionella upptäckaren) endast efter byggen. Den här inställningen innebär att testidentifiering i realtid hittar så många tester som möjligt när du redigerar. Med sammansättningsbaserad upptäckt kan dynamiskt definierade tester visas efter en kompilering.
Upptäckten av tester i realtid förbättrar svarstiden, men du kan fortfarande få fullständiga och exakta resultat efter en build.
Plus (+)-symbol i TestUtforskaren
Vad betyder plussymbolen som visas på den översta raden i Test Explorer?
Plussymbolen (+) anger att fler tester kan identifieras efter en version när sammansättningsbaserad identifiering körs. Den här symbolen visas om dynamiskt definierade tester identifieras i projektet.
Upptäckt av realtidstester
Tester visas nu i Test Explorer medan jag skriver, utan att jag behöver skapa mitt projekt. Vad har ändrats?
Den här funktionen kallas testidentifiering i realtid. Den använder en Roslyn-analysator för att hitta tester och fylla i Test Explorer i realtid, utan att du behöver skapa projektet. Mer information om testidentifieringsbeteende för dynamiskt definierade tester, till exempel teorier eller anpassade egenskaper, finns i Dynamisk testidentifiering tidigare i den här artikeln.
Kompatibilitet för upptäckt av realtidstester
Vilka språk och testramverk kan använda realtidstestidentifiering?
Realtidsupptäckt av tester fungerar bara för hanterade språk (C# och Visual Basic), eftersom det skapats via Roslyn-kompilatorn. För tillfället fungerar testidentifiering i realtid endast för ramverken xUnit, NUnit och MSTest.
Test Explorer-loggar
Hur aktiverar jag loggar för Test Explorer?
Gå till Verktyg>Alternativ>Test och leta reda på avsnittet Loggning där.
UWP-test identifiering
Varför identifieras inte mina tester i UWP-projekt förrän jag distribuerar min app?
UWP-tester (Universal Windows Platform) syftar till en annan körmiljö när appen distribueras. För att hitta tester korrekt för UWP-projekt behöver du inte bara skapa projektet utan även distribuera det.
Sortering i Testutforskaren
Hur fungerar sortering av testresultat i hierarkivyn?
Hierarkivyn sorterar tester alfabetiskt, inte efter utfall. Tidigare inställningar för gruppering sorterade testresultat efter resultat och sedan alfabetiskt. Du kan fortfarande aktivera sortering efter utfall genom att högerklicka på kolumnrubriken i Test Explorer, aktivera kolumnen State och sedan välja kolumnrubriken State för att tillämpa sortering på den kolumnen. Du kan ge feedback om designen i det här GitHub-problemet.
Test Explorer-hierarkivy
I hierarkivyn finns det ikoner för godkända, misslyckade, hoppade över och ej körda bredvid grupperingar av föräldernoder. Vad betyder de här ikonerna?
Ikonerna bredvid grupperingarna Project, Namespaceoch Class visar status för testerna inom varje gruppering. Se följande tabell.
Sökningar efter filsökväg
Varför finns det inte längre ett filsökvägsfilter i sökrutan Test Explorer?
Filsökvägsfiltret i sökrutan Test Explorer togs bort i Visual Studio 2017 version 15.7. Den här funktionen hade låg användning och Test Explorer kan hämta testmetoder snabbare genom att utelämna den. Om den här ändringen avbryter ditt utvecklingsflöde meddelar du oss genom att skicka feedback om Developer Community.
Borttagning av odokumenterade gränssnitt
Vissa testrelaterade API:er finns inte längre i Visual Studio 2019. Vad har ändrats?
I Visual Studio 2019 tas vissa testfönster-API:er som tidigare markerats som offentliga men aldrig officiellt dokumenterades bort. De markerades som inaktuella i Visual Studio 2017 för att ge tilläggsunderhållarna en tidig varning. Vi vet att mycket få tillägg hittade dessa API:er och var beroende av dem. De omfattar IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
och SearchFilterTokenType
.
Om den här ändringen påverkar ditt tillägg meddelar du oss genom att skicka in en bugg på Developer Community.
NuGet-referens för testadapter
Varför körs inte mina tester i Visual Studio 2017 version 15.8, även om de identifieras?
Alla testprojekt måste innehålla .NET-testkortets NuGet-referens i .csproj-filen. Om de inte gör det kommer följande testutdata att visas i projektet om identifieringen av ett testadaptertillägg startar efter en kompilering, eller om du försöker köra de valda testerna.
Testprojektet {} refererar inte till något .NET NuGet-kort. Upptäckt eller körning av tester kanske inte fungerar för det här projektet. Det rekommenderas att referera till NuGet-testadapter i varje .NET-testprojekt i lösningen.
I stället för att använda testadaptertillägg krävs det att projekt använder testadapter NuGet-paket. Detta krav förbättrar prestanda avsevärt och orsakar färre problem med kontinuerlig integrering. Läs mer om utfasningen av .NET-testadapterutökningar i versionsanteckningar.
UWP TestContainer hittades inte
Varför körs inte längre mina UWP-tester i Visual Studio 2017 version 15.7 och senare?
De senaste UWP-testprojekten anger en byggegenskap som ger bättre prestanda för att identifiera testappar. Om du har ett UWP-testprojekt som initierades före Visual Studio version 15.7 kan det här felet visas i utdata>tester:
System.AggregateException: Ett eller flera fel inträffade. ---> System.InvalidOperationException: Följande TestContainer kunde inte hittas {} på Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()
Så här åtgärdar du det här felet:
Uppdatera byggegenskapen för dina testprojekt med hjälp av följande kod:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
Uppdatera TestPlatform SDK-versionen med hjälp av följande kod:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
Förhandsversionsfunktioner
Hur kan jag använda förhandsversionsfunktioner i Visual Studio 2019?
I Visual Studio 2019 kan du välja att förhandsgranska funktioner i Tools>Options>Environment>Preview Features.