Delen via


Eenheidstests uitvoeren met behulp van Test Explorer

Gebruik Test Explorer om eenheidstests uit te voeren vanuit Visual Studio of testprojecten van derden. In Test Explorer kunt u tests groeperen in categorieën, de testlijst filteren en afspeellijsten van tests maken, opslaan en uitvoeren. U kunt Test Explorer ook gebruiken om foutopsporingseenheidstests te en in Visual Studio Enterprise codedekking te analyseren.

Test Explorer kan tests uitvoeren vanuit meerdere testprojecten in een oplossing en vanuit testklassen die deel uitmaken van de productiecodeprojecten. Testprojecten kunnen verschillende eenheidstestframeworks gebruiken. Wanneer de code onder test is geschreven voor .NET, kan het testproject worden geschreven in elke taal die ook is gericht op .NET, ongeacht de taal van de doelcode. U moet systeemeigen C- en C++-codeprojecten testen met behulp van een C++-eenheidstestframework.

Uw testproject bouwen

Als u nog geen testproject hebt ingesteld in uw Visual Studio-oplossing, moet u eerst een testproject maken en bouwen. Gebruik deze resources:

Visual Studio bevat de Microsoft-eenheidstestframeworks voor zowel beheerde als systeemeigen code. Test Explorer kan echter ook elk testframework voor eenheden uitvoeren dat een Test Explorer-adapter heeft geïmplementeerd. Zie Unittest-frameworks installerenvoor meer informatie over het installeren van unittest-frameworks van derden.

Tests uitvoeren in Test Explorer

Wanneer u het testproject bouwt, worden de tests weergegeven in Test Explorer. Als Test Explorer niet zichtbaar is, selecteert u Test in het menu van Visual Studio en selecteert u vervolgens Test Explorer (of selecteer Ctrl+E, T).

schermopname van een testlijst in Test Explorer.

schermopname van een testlijst in Test Explorer.

Terwijl u uw tests uitvoert, schrijft en opnieuw uitvoert, worden in Test Explorer de resultaten weergegeven in een standaardgroepering van Project-, naamruimteen klasse-. U kunt de manier wijzigen waarop Test Explorer uw tests groeperen.

U kunt een groot deel van het werk met zoeken, organiseren en uitvoeren van tests uitvoeren vanaf de Test Explorer werkbalk.

Schermopname met pictogrammen voor het uitvoeren van tests vanaf de werkbalk Test Explorer.

Schermopname met pictogrammen voor het uitvoeren van tests vanaf de werkbalk Test Explorer.

Tests uitvoeren

Kies een van deze opties voor het uitvoeren van tests:

  • Als u alle tests in een oplossing wilt uitvoeren, selecteert u het pictogram Alle uitvoeren (of selecteert u Ctrl+R, V).

  • Als u alle tests in een standaardgroep wilt uitvoeren, selecteert u het pictogram Uitvoeren en selecteert u vervolgens de groep in het menu.

  • Als u afzonderlijke tests wilt uitvoeren, selecteert u een of meer tests, klikt u ergens in het deelvenster met de rechtermuisknop en selecteert u Geselecteerde tests uitvoeren (of selecteer Ctrl+R, T).

    Als afzonderlijke tests geen afhankelijkheden hebben die verhinderen dat ze in een willekeurige volgorde worden uitgevoerd, schakelt u parallelle testuitvoering in in het instellingenmenu van de werkbalk. Deze actie kan de tijd voor het uitvoeren van alle tests verminderen.

Notitie

Zie Procesarchitectuur configureren voor een eenheidstestom het doelplatform (procesarchitectuur) te configureren voor het uitvoeren van eenheidstests.

Tests uitvoeren na elke build

Als u uw eenheidstests na elke lokale build wilt uitvoeren, selecteert u het instellingenpictogram op de werkbalk Test Explorer en selecteert u vervolgens Tests uitvoeren na build-.

Testresultaten weergeven

Tijdens het uitvoeren, schrijven en opnieuw uitvoeren van uw tests geeft Test Explorer de resultaten weer in groepen Mislukte tests, geslaagde tests, overgeslagen testsen Niet-uitgevoerde tests. In het detailvenster onderaan of aan de zijkant van Test Explorer wordt een samenvatting van de testuitvoering weergegeven.

Testdetails weergeven

Als u de details van een afzonderlijke test wilt bekijken, selecteert u de test.

schermopname van details van testuitvoering.

schermopname van details van testuitvoering.

In het deelvenster voor testdetails wordt het volgende weergegeven:

  • De naam van het bronbestand en het regelnummer van de testmethode.

  • De status van de test.

  • De verstreken tijd die de testmethode heeft genomen om uit te voeren.

Als de test mislukt, wordt in het detailvenster ook het volgende weergegeven:

  • Het bericht dat het unittestframework teruggeeft voor de test.

  • De stacktrace op het moment van mislukking van de test.

De broncode van een testmethode weergeven

Als u de broncode voor een testmethode wilt weergeven in de Visual Studio-editor, klikt u met de rechtermuisknop op de test en selecteert u Test openen (of selecteert u de F12-toets).

De testlijst groeperen en filteren

In Test Explorer kunt u uw tests groeperen in vooraf gedefinieerde categorieën. Met de meeste moduletestframeworks die worden uitgevoerd in Test Explorer, kunt u uw eigen categorieën en categorie-/waardeparen definiëren om uw tests te groeperen. U kunt ook de lijst met tests filteren door tekenreeksen af te stemmen op testeigenschappen.

Tests groeperen in de testlijst

Met Test Explorer kunt u uw tests groeperen in een hiërarchie. De standaardhiërarchiegroepering is Project-, naamruimteen klasse. Als u de manier wilt wijzigen waarop tests worden georganiseerd, selecteert u de knop Groeperen op knop knop Test Explorer en selecteert u vervolgens een nieuw groepeercriterium.

Schermopname van selecties voor het groeperen van tests per categorie in Test Explorer.

U kunt uw eigen niveaus van de hiërarchie definiëren (groeperen op status en vervolgens klasse-, bijvoorbeeld) door groeperen op opties in de gewenste volgorde te selecteren.

Schermopname van Test Explorer met een testhiërarchie in het ene deelvenster en het menu Groeperen op in het andere deelvenster, met de opties Klasse en Status geselecteerd.

Met Test Explorer kunt u uw tests groeperen in een hiërarchie. De standaardhiërarchiegroepering is Project-, naamruimteen klasse. Als u de manier wilt wijzigen waarop tests worden georganiseerd, selecteert u de knop Groeperen opTest Explorer en kiest u vervolgens een nieuw groepeercriterium.

Schermopname van selecties voor het groeperen van tests per categorie in Test Explorer.

U kunt uw eigen niveaus van de hiërarchie definiëren (groeperen op status en vervolgens klasse-, bijvoorbeeld) door groeperen op opties in de gewenste volgorde te selecteren.

Schermopname van Test Explorer met een testhiërarchie in het ene deelvenster en het menu Groeperen op in het andere deelvenster, met de opties Klasse en Status geselecteerd.

Test Explorer-groepen

Groep Beschrijving
duur Groepen testen op uitvoeringstijd: Fast, Medium, Slow.
staat Groepeert tests op uitvoeringsresultaten: mislukte tests, overgeslagen tests, geslaagde tests, niet uitgevoerd.
nl-NL: Target Framework Groepen testen op het framework waarop hun projecten zijn gericht.
Naamruimte Groepeert tests per behorende naamruimte.
Project Hiermee worden tests gegroepeerd op basis van het project dat het bevat.
klasse Hiermee worden tests gegroepeerd door de bevatte klasse.

Eigenschappen

Een kenmerk is meestal een categorienaam/waardepaar, maar kan ook één categorie zijn. Eigenschappen kunnen worden toegewezen aan methoden die het eenheidstestframework identificeert als testmethoden.

Een eenheidstestframework kan eigenschappencategorieën definiëren. U kunt waarden toevoegen aan de eigenschappencategorieën om uw eigen categorienaam/waardeparen te definiëren. Het testframework voor eenheden definieert de syntaxis voor het opgeven van eigenschappencategorieën en -waarden.

Eigenschappen in het Microsoft Unit Testing Framework voor beheerde code

In het Microsoft Unit Testing Framework voor Beheerde code definieert u een naam/waarde-paar in een TestPropertyAttribute attribuut. Het testframework bevat ook deze vooraf gedefinieerde eigenschappen:

Kenmerk Beschrijving
OwnerAttribute De Owner categorie wordt gedefinieerd door het eenheidstestframework en vereist dat u een tekenreekswaarde van de eigenaar opgeeft.
PriorityAttribute De Priority categorie wordt gedefinieerd door het eenheidstestframework en vereist dat u een geheel getal van de prioriteit opgeeft.
TestCategoryAttribute Met het kenmerk TestCategory kunt u de categorie van een eenheidstest opgeven.
TestPropertyAttribute Met het kenmerk TestProperty kunt u een eigenschapscategorie/waardepaar definiëren.

Eigenschappen in het Microsoft Unit Testing Framework voor C++

Zie Het Microsoft Unit Testing Framework voor C++ gebruiken in Visual Studio.

Aangepaste afspeellijsten maken

U kunt een lijst met tests maken en opslaan die u als groep wilt uitvoeren of weergeven. Wanneer u een afspeellijst selecteert, worden de tests in de lijst weergegeven op een nieuw tabblad Test Explorer. U kunt een test toevoegen aan meer dan één afspeellijst.

Een afspeellijst maken:

  1. Kies een of meer tests in Test Explorer.
  2. Klik met de rechtermuisknop ergens in het deelvenster, wijs Toevoegen aan afspeellijstaan en selecteer Nieuwe afspeellijst.

Schermopname met selecties voor het maken van een afspeellijst.

De afspeellijst wordt geopend op een nieuw tabblad Test Explorer. U kunt deze afspeellijst eenmaal gebruiken en deze vervolgens verwijderen. U kunt ook de knop Opslaan selecteren op de werkbalk van het afspeellijstvenster en vervolgens een naam en locatie selecteren om de afspeellijst op te slaan.

Schermopname van een afspeellijst die is geopend op een afzonderlijk tabblad Test Explorer.

Een afspeellijst openen:

  1. Selecteer op de werkbalk van Visual Studio het afspeellijstpictogram.
  2. Selecteer in het menu een eerder opgeslagen afspeellijstbestand.

Als u een afspeellijst wilt bewerken, gebruikt u een van de volgende opties:

  • Klik met de rechtermuisknop op een test en gebruik vervolgens de menuopdrachten om deze toe te voegen aan of te verwijderen uit een afspeellijst.

  • Selecteer op de werkbalk de knop Afspeellijst bewerken. Selectievakjes die naast uw tests worden weergegeven, laten zien welke tests zijn opgenomen en uitgesloten in de afspeellijst. Groepen naar wens bewerken. Deze mogelijkheid is gestart in Visual Studio 2019 versie 16.7.

    Schermopname van de knop Afspeellijst bewerken op de werkbalk.

U kunt ook de selectievakjes voor de bovenliggende groepen in de hiërarchie in- of wissen. Met deze actie maakt u een dynamische afspeellijst waarmee de afspeellijst altijd wordt bijgewerkt op basis van de tests die zich in die groep bevinden.

Als u bijvoorbeeld een selectievakje naast een klas inschakelt, wordt een test die uit die klas is toegevoegd, onderdeel van deze afspeellijst. Als u een test uit die klasse verwijdert, wordt deze verwijderd uit de afspeellijst.

U vindt meer informatie over de regels door de afspeellijst op te slaan via de knop Opslaan op de werkbalk en vervolgens de .afspeellijst te openen XML-bestand dat op uw schijf is gemaakt. Dit bestand bevat alle regels en afzonderlijke tests waaruit een afspeellijst bestaat.

Schermopname van de inhoud van een XML-bestand met afspeellijsten.

Als u een afspeellijst wilt maken voor eigenschappen, gebruikt u de volgende indeling voor het MSTest-framework:

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Property Name="Trait" Value="SchemaUpdateBasic" />
  </Rule>
</Playlist>

Gebruik de volgende indeling voor het xUnit-framework. Zorg ervoor dat er een spatie is tussen uw TestCategory naam en de [Value] waarde.

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
        </Rule>
    </Rule>
  </Rule>
</Playlist>

U kunt een lijst met tests maken en opslaan die u als groep wilt uitvoeren of weergeven. Wanneer u een afspeellijst selecteert, worden de tests in de lijst weergegeven op een nieuw tabblad Test Explorer. U kunt een test toevoegen aan meer dan één afspeellijst.

Een afspeellijst maken:

  1. Kies een of meer tests in Test Explorer.
  2. Klik met de rechtermuisknop ergens in het deelvenster, en wijs naar Toevoegen aan afspeellijst, en selecteer Nieuwe Afspeellijst.

Schermopname met selecties voor het maken van een afspeellijst.

De afspeellijst wordt geopend op een nieuw tabblad Test Explorer. U kunt deze afspeellijst eenmaal gebruiken en deze vervolgens verwijderen. U kunt ook de knop Opslaan selecteren op de werkbalk van het afspeellijstvenster en vervolgens een naam en locatie selecteren om de afspeellijst op te slaan.

Schermopname van een afspeellijst die is geopend op een afzonderlijk tabblad Test Explorer.

Een afspeellijst openen:

  1. Selecteer op de werkbalk van Visual Studio het afspeellijstpictogram.
  2. Selecteer in het menu een eerder opgeslagen afspeellijstbestand.

Als u een afspeellijst wilt bewerken, gebruikt u een van de volgende opties:

  • Klik met de rechtermuisknop op een test en gebruik vervolgens de menuopdrachten om deze toe te voegen aan of te verwijderen uit een afspeellijst.

  • Selecteer op de werkbalk de knop Afspeellijst bewerken. Selectievakjes die naast uw tests worden weergegeven, laten zien welke tests zijn opgenomen en uitgesloten in de afspeellijst. Groepen naar wens bewerken. Deze mogelijkheid is gestart in Visual Studio 2019 versie 16.7.

    Schermopname van de knop Afspeellijst bewerken op de werkbalk.

U kunt ook de selectievakjes voor de bovenliggende groepen in de hiërarchie inschakelen of uitschakelen. Met deze actie maakt u een dynamische afspeellijst waarmee de afspeellijst altijd wordt bijgewerkt op basis van de tests die zich in die groep bevinden.

Als u bijvoorbeeld een selectievakje naast een klas inschakelt, wordt een test die uit die klas is toegevoegd, onderdeel van deze afspeellijst. Als u een test uit die klasse verwijdert, wordt deze verwijderd uit de afspeellijst.

U vindt meer informatie over de regels door de afspeellijst op te slaan via de knop Opslaan op de werkbalk en vervolgens de .afspeellijst te openen XML-bestand dat op uw schijf is gemaakt. Dit bestand bevat alle regels en afzonderlijke tests waaruit een afspeellijst bestaat.

Schermopname van de inhoud van een XML-bestand met afspeellijsten.

Als u een afspeellijst wilt maken voor eigenschappen, gebruikt u de volgende indeling voor het MSTest-framework:

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Property Name="Trait" Value="SchemaUpdateBasic" />
  </Rule>
</Playlist>

Gebruik de volgende indeling voor het xUnit-framework. Zorg ervoor dat er een spatie is tussen uw TestCategory naam en de [Value] waarde.

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
        </Rule>
    </Rule>
  </Rule>
</Playlist>

De Test Explorer-kolommen

Groepen zijn ook beschikbaar als kolommen in Test Explorer, samen met Eigenschappen, Stack Trace, Foutmeldingen Volledig Gekwalificeerde Naam. De meeste kolommen zijn standaard niet zichtbaar. U kunt aanpassen welke kolommen worden weergegeven.

Schermopname van Visual Studio Test Explorer met een menu met Kolommen geselecteerd en een submenu met Duur, Kenmerken en Foutbericht geselecteerd.

Kolommen kunnen worden gefilterd, opnieuw gerangschikt en gesorteerd:

  • Als u wilt filteren op specifieke eigenschappen, selecteert u het filterpictogram boven aan de kolom Eigenschappen.

    schermopname van het kolomfilter.

  • Als u de volgorde van de kolommen wilt wijzigen, selecteert u een kolomkop en sleept u deze naar links of rechts.

  • Als u een kolom wilt sorteren, selecteert u de kolomkop. Niet alle kolommen kunnen worden gesorteerd. U kunt ook sorteren op een secundaire kolom door shift ingedrukt te houden en een extra kolomkop te selecteren.

    Schermopname van een kolomsortering.

Test Explorer-kolommen

Groepen zijn ook beschikbaar als kolommen in Test Explorer, samen met Eigenschappen, Stack Trace, Foutberichten Volledig Gekwalificeerde Naam. De meeste kolommen zijn standaard niet zichtbaar. U kunt aanpassen welke kolommen worden weergegeven.

Schermopname van Visual Studio Test Explorer met een menu met Kolommen geselecteerd en een submenu met Duur, Eigenschappen en Foutbericht geselecteerd.

Kolommen kunnen worden gefilterd, opnieuw gerangschikt en gesorteerd:

  • Als u wilt filteren op specifieke eigenschappen, selecteert u het filterpictogram boven aan de kolom Eigenschappen.

    schermopname van het kolomfilter.

  • Als u de volgorde van de kolommen wilt wijzigen, selecteert u een kolomkop en sleept u deze naar links of rechts.

  • Als u een kolom wilt sorteren, selecteert u de kolomkop. Niet alle kolommen kunnen worden gesorteerd. U kunt ook sorteren op een secundaire kolom door shift ingedrukt te houden en een extra kolomkop te selecteren.

    Schermopname van een kolomsortering.

De testlijst zoeken en filteren

U kunt ook de zoekfilters van Test Explorer gebruiken om de testmethoden in uw projecten te beperken die u bekijkt en uitvoert.

Wanneer u een tekenreeks typt in het Test Explorer zoekvak en de Enter-toets selecteert, wordt de testlijst gefilterd om alleen tests weer te geven waarvan de volledig gekwalificeerde namen de tekenreeks bevatten.

Filteren op een ander criterium:

  1. Open de vervolgkeuzelijst rechts van het zoekvak.

  2. Kies een nieuw criterium.

  3. Voer de filterwaarde tussen de aanhalingstekens in. Als u wilt zoeken naar een exacte overeenkomst op de tekenreeks in plaats van een overeenkomende overeenkomst, gebruikt u een gelijkteken (=) in plaats van de dubbele punt (:).

schermopname van filtertests in Test Explorer.

schermopname van filtertests in Test Explorer.

Notitie

Zoekopdrachten zijn niet hoofdlettergevoelig en worden vergeleken met elke deel van de criteriumwaarde.

Kwalificatie Beschrijving
Staat Zoekt in de categorienamen van Test Explorer naar overeenkomsten: mislukte tests, overgeslagen tests, geslaagde tests.
eigenschappen Hiermee wordt gezocht naar zowel eigenschappencategorieën als waarden voor overeenkomsten. Het testframework voor eenheden definieert de syntaxis voor het opgeven van eigenschappencategorieën en -waarden.
Volledig gekwalificeerde naam Hiermee wordt gezocht naar de volledig gekwalificeerde naam van testnaamruimten, klassen en methoden voor overeenkomsten.
Project Zoekt naar overeenkomende testprojectnamen.
Target Framework- Zoekt in de testframeworks naar overeenkomsten.
Naamruimte Zoekt in de testnaamruimten naar overeenkomsten.
Klasse Zoekt naar de namen van de testklassen om overeenkomsten te vinden.

Als u een subset van de resultaten van een filter wilt uitsluiten, gebruikt u de volgende syntaxis:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

FullName:"MyClass" - FullName:"PerfTest" retourneert bijvoorbeeld alle tests die 'MyClass' bevatten in hun naam, behalve tests die ook 'PerfTest' in hun naam bevatten.

De code-dekking van eenheidstests analyseren

U kunt bepalen hoeveel productcode uw eenheidstests daadwerkelijk testen met behulp van het visual Studio Code-dekkingsprogramma dat beschikbaar is in Visual Studio Enterprise. U kunt codedekking uitvoeren op geselecteerde tests of op alle tests in een oplossing.

Codedekking uitvoeren voor testmethoden in een oplossing:

  • Klik met de rechtermuisknop in Test Explorer en selecteer vervolgens Codedekking analyseren voor geselecteerde tests.

In het venster codedekkingsresultaten wordt het percentage weergegeven van de blokken productcode die zijn uitgevoerd per regel, functie, klasse, naamruimte en module.

Voor meer informatie, zie Gebruik codedekking om te bepalen hoeveel code wordt getest.

Sneltoetsen testen

U kunt tests uitvoeren vanuit Test Explorer door:

  • Klik met de rechtermuisknop op een test in de code-editor en selecteer vervolgens Test uitvoeren
  • Gebruikmakend van de standaardsnelkoppelingen Test Explorer in Visual Studio

Sommige van de sneltoetsen zijn gebaseerd op context. Ze voeren foutopsporinguit, of profiel--tests, afhankelijk van waar de cursor zich in de code-editor bevindt. Als de cursor zich in een testmethode bevindt, wordt die testmethode uitgevoerd. Als de cursor zich op klasseniveau bevindt, worden alle tests in die klasse uitgevoerd. Hetzelfde gedrag geldt voor het niveau van de naamruimte.

Veelgebruikte opdrachten Toetsenbord sneltoetsen
TestExplorer.DebugAllTestsInContext Ctrl+R, Ctrl+T
TestExplorer.RunAllTestsInContext Ctrl+R, T
TestExplorer.RunAllTests Ctrl+R, A
TestExplorer.RepeatLastRun Ctrl+R, L

Notitie

U kunt geen test uitvoeren in een abstracte klasse, omdat tests alleen worden gedefinieerd in abstracte klassen en niet geïnstantieerd. Als u tests in abstracte klassen wilt uitvoeren, maakt u een klasse die is afgeleid van de abstracte klasse.

Audiosignalen instellen

Test Explorer kan een van deze geluiden afspelen wanneer een testuitvoering is voltooid:

  • Een geluid dat aangeeft dat de testrun is geslaagd met allemaal geslaagde tests.
  • Een geluid dat aangeeft dat de testuitvoering is voltooid met ten minste één mislukte test

U kunt deze geluiden instellen in het standaarddialoogvenster van Windows 11 Geluid. Deze functie is beschikbaar vanaf Visual Studio 2019 Update 16.9 Preview 3.

  1. Open het standaard Windows 11-geluidsdialoogvenster .
  2. Ga naar het tabblad Geluiden.
  3. Zoek de categorie Microsoft Visual Studio. Kies de testuitvoering is voltooid of testuitvoering is mislukt vooraf ingestelde geluid of blader naar uw eigen audiobestand.

Schermafbeelding van het dialoogvenster Geluid van Windows 11.