Dela via


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.

Skärmbild som visar en sammanfattningsrad med ett plustecken.

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.

tabell med testutforskarens hierarkiikoner.

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, ISearchTokenoch 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.