Veelgestelde vragen over Visual Studio Test Explorer
Dynamische testdetectie
Test Explorer ontdekt mijn tests niet die dynamisch zijn gedefinieerd (bijvoorbeeld theorieën, aangepaste adapters, aangepaste eigenschappen en #ifdef instructies). Hoe kan ik ervoor zorgen dat deze tests worden gedetecteerd?
Bouw uw project om op assembly gebaseerde detectie uit te voeren.
realtime testdetectie is op bron gebaseerde testdetectie. Er kunnen geen tests worden gedetecteerd die gebruikmaken van theorieën, aangepaste adapters, aangepaste eigenschappen, #ifdef
instructies en meer, omdat ze tijdens runtime worden gedefinieerd. Er is een build vereist om deze tests nauwkeurig te kunnen vinden.
In Visual Studio 2017 versie 15.6 en hoger wordt assembly-gebaseerde detectie (de traditionele detectiefunctie) pas na compilaties uitgevoerd. Deze instelling houdt in dat realtime testdetectie zoveel mogelijk tests vindt terwijl je aan het bewerken bent. Met detectie op basis van assembly's kunnen dynamisch gedefinieerde tests worden weergegeven na een build.
Realtime testdetectie verbetert de reactiesnelheid, maar het biedt u nog steeds de mogelijkheid om volledige en nauwkeurige resultaten te krijgen na een build.
Test Explorer plus-symbool (+)
Wat betekent het plusteken dat wordt weergegeven in de bovenste regel van Test Explorer?
Het plusteken (+) geeft aan dat er na een build meer tests kunnen worden gedetecteerd wanneer detectie op basis van assembly's wordt uitgevoerd. Dit symbool wordt weergegeven als dynamisch gedefinieerde tests worden gedetecteerd in uw project.
Realtime testdetectie
Tests worden nu weergegeven in Test Explorer terwijl ik typ, zonder dat ik mijn project moet bouwen. Wat is er veranderd?
Deze functie wordt de realtime testdetectiegenoemd. Het maakt gebruik van een Roslyn Analyzer om tests te vinden en Test Explorer in realtime te vullen, zonder dat u uw project hoeft te bouwen. Zie Dynamische testdetectie eerder in dit artikel voor meer informatie over testdetectiegedrag voor dynamisch gedefinieerde tests, zoals theorieën of aangepaste eigenschappen.
Compatibiliteit voor realtime testdetectie
Welke talen en testframeworks kunnen realtime testdetectie gebruiken?
realtime testdetectie werkt alleen voor de beheerde talen (C# en Visual Basic), omdat deze is gebouwd via de Roslyn-compiler. Voorlopig werkt realtime testdetectie alleen voor de xUnit-, NUnit- en MSTest-frameworks.
Test Explorer logboeken
Hoe kan ik logboeken inschakelen voor Test Explorer?
Ga naar Tools>Options>Test en zoek de sectie Logging daar.
UWP-testontdekking
Waarom worden mijn tests in UWP-projecten pas gedetecteerd als ik mijn app implementeer?
UWP-tests (Universal Windows Platform) richten zich op een andere runtime wanneer de app wordt geïmplementeerd. Als u tests nauwkeurig wilt vinden voor UWP-projecten, moet u niet alleen uw project bouwen, maar ook implementeren.
Sorteren in Test Explorer
Hoe werkt het sorteren van testresultaten in de hiërarchieweergave?
De hiërarchieweergave sorteert tests alfabetisch, niet op resultaat. Eerdere instellingen voor het groeperen sorteerden de testresultaten op uitkomst en vervolgens alfabetisch. U kunt sorteren op resultaat nog steeds inschakelen door met de rechtermuisknop op de kolomkop in Test Explorer te klikken, de kolom State in te schakelen en vervolgens de kolomkop State te selecteren om sorteren op die kolom toe te passen. U kunt feedback geven over het ontwerp in dit GitHub-probleem.
Test Explorer hiërarchieweergave
In de hiërarchieweergave staan er pictogrammen voor geslaagd, mislukt, overgeslagen en niet-uitgevoerd naast hoofdgroepen van knooppunten. Wat betekenen deze pictogrammen?
De pictogrammen naast de Project, naamruimteen klasse groeperingen geven de status van de tests binnen elke groepering weer. Zie de volgende tabel.
Zoekopdrachten naar bestandspad
Waarom is er geen bestandspadfilter meer in het zoekvak van Test Explorer?
Het bestandspadfilter in het zoekvak testverkenner is verwijderd in Visual Studio 2017 versie 15.7. Deze functie had weinig gebruik en Test Explorer kan testmethoden sneller ophalen door deze weg te laten. Als deze wijziging uw ontwikkelingsstroom onderbreekt, laat het ons dan weten door feedback te verzenden over Developer Community.
Verwijderen van niet-gedocumenteerde interfaces
Sommige test-gerelateerde API's zijn niet meer aanwezig in Visual Studio 2019. Wat is er veranderd?
In Visual Studio 2019 worden enkele testvenster-API's die eerder als openbaar zijn gemarkeerd, maar die nooit officieel zijn gedocumenteerd, verwijderd. Ze zijn in Visual Studio 2017 als verouderd verklaard gemarkeerd om extensieonderhouders een vroege waarschuwing te geven. Voor zover wij weten, hebben zeer weinig extensies deze API's gevonden en werden ze ervan afhankelijk. Ze omvatten IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
en SearchFilterTokenType
.
Als deze wijziging van invloed is op uw uitbreiding, laat het ons dan weten door een bug in te dienen op Developer Community.
NuGet-verwijzing voor testadapter
Waarom worden mijn tests niet uitgevoerd in Visual Studio 2017 versie 15.8, ook al zijn ze ontdekt?
Alle testprojecten moeten hun .NET-testadapter NuGet-verwijzing bevatten in hun .csproj-bestand. Als dat niet zo is, wordt de volgende testuitvoer weergegeven in het project als de detectie door een testadapterextensie na een build wordt gestart of als u de geselecteerde tests probeert uit te voeren:
Testproject {} verwijst niet naar een .NET NuGet-adapter. Testdetectie of -uitvoering werkt mogelijk niet voor dit project. Het wordt aanbevolen om te verwijzen naar NuGet-testadapters in elk .NET-testproject in de oplossing.
In plaats van testadapterextensies te gebruiken, moeten projecten NuGet-pakketten voor testadapters gebruiken. Deze vereiste verbetert de prestaties aanzienlijk en veroorzaakt minder problemen met continue integratie. Lees meer over de afschaffing van .NET-testadapterextensies in de releaseopmerkingen.
UWP TestContainer is niet gevonden
Waarom worden mijn UWP-tests niet meer uitgevoerd in Visual Studio 2017 versie 15.7 en hoger?
Recente UWP-testprojecten geven een build-eigenschap op die betere prestaties biedt voor het identificeren van test-apps. Als u een UWP-testproject hebt dat is geïnitialiseerd vóór Visual Studio versie 15.7, ziet u deze fout mogelijk in Uitvoer>Tests:
System.AggregateException: er zijn een of meer fouten opgetreden. ---> System.InvalidOperationException: De volgende TestContainer is niet gevonden {} in Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()
Ga als volgt te werk om deze fout op te lossen:
Werk de build-eigenschap voor uw testprojecten bij met behulp van de volgende code:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
Werk de TestPlatform SDK-versie bij met behulp van de volgende code:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
Preview-functies
Hoe kan ik preview-functies gebruiken in Visual Studio 2019?
In Visual Studio 2019 kunt u ervoor kiezen om preview-functies te bekijken in Tools>Options>Environment>Preview Features.