Vanliga frågor och svar om Visual Studio Test Explorer
Dynamisk testupptäckt
Test Explorer hittar inte mina tester som är dynamiskt definierade (till exempel teorier, anpassade adaptrar, anpassade drag och #ifdef-uttryck). Hur kan jag se till att den identifierar dessa tester?
Skapa projektet för att köra sammansättningsbaserad identifiering.
Identifiering av realtidstest är källbaserad testidentifiering. Det går inte att identifiera tester som använder teorier, anpassade adaptrar, anpassade egenskaper, #ifdef
-instruktioner med mera eftersom de definieras under körningen. En kompilering krävs för att dessa tester ska kunna utföras med precision.
I Visual Studio 2017-version 15.6 och senare körs identifiering baserad på sammansättningar (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 identifiering 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 ett bygge.
TestUtforskaren plus (+) symbol
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äckning av realtidstest
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 real-tidstestupptäckt. 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 identifiering av realtidstest
Vilka språk och testramverk kan använda realtidstestidentifiering?
Testidentifiering i realtid fungerar endast för de programhanterade språken (C# och Visual Basic) eftersom det är byggt via Roslyn-kompilatorn. För tillfället fungerar testidentifiering i realtid endast för ramverken xUnit, NUnit och MSTest.
Loggar för Test Explorer
Hur aktiverar jag loggar för Test Explorer?
Gå till Verktyg>Alternativ>Test och leta reda på avsnittet Loggning där.
UWP-testupptäckt
Varför identifieras inte mina tester i UWP-projekt förrän jag distribuerar min app?
UWP-tester (Universal Windows Platform) riktar in sig på 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 Test Explorer
Hur fungerar sortering av testresultat i hierarkivyn?
Hierarkivyn sorterar tester alfabetiskt, inte efter utfall. Tidigare grupperingsinställningar sorterade testresultat efter utfall 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 godkända, misslyckade, överhoppade och inte körda ikoner bredvid grupperingarna för överordnade noder. 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 visas följande testutdata i projektet om identifiering av en testadapterförlängning startar efter en kompilering, eller om du försöker köra de valda testerna:
Testprojektet {} refererar inte till något .NET NuGet-kort. Testupptäckt eller körning kanske inte fungerar för det här projektet. Det rekommenderas att hänvisa till NuGet-testadaptrar i varje .NET-testprojekt inom lösningen.
I stället för att använda testadaptertillägg krävs det att projekt använder NuGet-paket för testadaptrar. Detta krav förbättrar prestanda avsevärt och orsakar färre problem med kontinuerlig integrering. Läs mer om utfasningen av .NET-testadaptertillägg i versionsinformationen för .
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 hittades inte {} 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.