Dela via


Köra enhetstester med testutforskaren

Använd Test Explorer för att köra enhetstester från Visual Studio eller enhetstestprojekt från tredje part. I Test Explorer kan du gruppera tester i kategorier, filtrera testlistan och skapa, spara och köra spellistor med tester. Du kan också använda Test Explorer för att felsökningsenhetstester och, i Visual Studio Enterprise, för att analysera kodtäckning.

Test Explorer kan köra tester från flera testprojekt i en lösning och från testklasser som ingår i produktionskodprojekten. Testprojekt kan använda olika enhetstestramverk. När koden som testas är skriven för .NET kan testprojektet skrivas på valfritt språk som även riktar sig till .NET, oavsett målkodens språk. Du måste testa interna C- och C++-kodprojekt med hjälp av ett C++-enhetstestramverk.

Skapa ditt testprojekt

Om du inte redan har konfigurerat ett testprojekt i Visual Studio-lösningen måste du först skapa och skapa ett testprojekt. Använd följande resurser:

Visual Studio innehåller Microsofts enhetstestramverk för både hanterad och intern kod. Test Explorer kan också köra alla enhetstest-ramverk som har implementerat en Test Explorer-adapter. Mer information om hur du installerar testramverk från tredje part finns i Installera enhetstestramverk.

Köra tester i Test Explorer

När du skapar testprojektet visas testerna i TestUtforskaren. Om Test Explorer inte visas väljer du Test på Visual Studio-menyn och väljer sedan Test Explorer (eller ctrl+E, T).

Skärmbild som visar en testlista i TestUtforskaren.

Skärmbild som visar en testlista i TestUtforskaren.

När du kör, skriver och kör testerna igen visar Test Explorer resultatet i en standardgrupp av Project, Namespaceoch Class. Du kan ändra hur Test Explorer grupperar dina tester.

Du kan utföra mycket av arbetet med att hitta, organisera och köra tester från Test Explorer verktygsfältet.

Skärmbild som beskriver ikoner för att köra tester från testutforskarens verktygsfält.

Skärmbild som beskriver ikoner för att köra tester från testutforskarens verktygsfält.

Köra tester

Välj något av följande alternativ för att köra tester:

  • Om du vill köra alla tester i en lösning väljer du ikonen Kör alla (eller väljer Ctrl+R, V).

  • Om du vill köra alla tester i en standardgrupp väljer du ikonen Kör och väljer sedan gruppen på menyn.

  • Om du vill köra enskilda tester väljer du ett eller flera tester, högerklickar någonstans i fönstret och väljer sedan Kör valda tester (eller väljer Ctrl+R, T).

    Om enskilda tester inte har några beroenden som hindrar dem från att köras i valfri ordning aktiverar du parallell testkörning på inställningsmenyn i verktygsfältet. Den här åtgärden kan minska tiden för att köra alla tester.

Not

Information om hur du konfigurerar målplattformen (processarkitektur) för enhetstester som körs finns i Konfigurera processarkitektur för ett enhetstest.

Kör tester efter varje kompilering

Om du vill köra enhetstesterna efter varje lokal version väljer du inställningsikonen i testutforskarens verktygsfält och väljer sedan Kör tester efter.

Visa testresultat

När du kör, skriver och kör testerna igen visar Test Explorer resultaten i grupper med misslyckade tester, godkända tester, överhoppade testeroch icke körda tester. Informationsfönstret längst ned eller på sidan av Testutforskaren visar en sammanfattning av testkörningen.

Visa testdetaljer

Om du vill visa information om ett enskilt test väljer du testet.

Skärmbild av testkörningsinformation.

Skärmbild av testkörningsinformation.

Fönstret för testinformation visar:

  • Källfilens namn och radnumret för testmetoden.

  • Status för testet.

  • Den tid som gått under vilken testmetoden kördes.

Om testet misslyckas visas även informationsfönstret:

  • Meddelandet som enhetstestramverket returnerar för testet.

  • Stackspårningen vid den tidpunkt då testet misslyckades.

Visa källkoden för en testmetod

Om du vill visa källkoden för en testmetod i Visual Studio-redigeraren högerklickar du på testet och väljer sedan Öppna test (eller välj nyckeln F12).

Gruppera och filtrera testlistan

I Test Explorer kan du gruppera dina tester i fördefinierade kategorier. De flesta enhetstestramverk som körs i Test Explorer låter dig definiera dina egna kategorier och kategori/värde-par för att gruppera dina tester. Du kan också filtrera listan över tester genom att matcha strängar mot testegenskaper.

Gruppera tester i testlistan

Med Test Explorer kan du gruppera dina tester i en hierarki. Standardhierarkigruppering är Project, Namespaceoch sedan Class. Om du vill ändra hur testerna organiseras väljer du knappen Gruppera eftertestutforskarens gruppknapp och väljer sedan ett nytt grupperingsvillkor.

Skärmbild som visar val för gruppering av tester efter kategori i Testutforskaren.

Du kan definiera dina egna nivåer i hierarkin (gruppera efter State och sedan Class, till exempel) genom att välja Gruppera efter alternativ i önskad ordning.

Skärmbild av Testutforskaren som visar en testhierarki i ett fönster och menyn Gruppera efter i det andra fönstret, med alternativen Klass och Tillstånd markerade.

Med Test Explorer kan du gruppera dina tester i en hierarki. Standardhierarkigruppering är Project, Namespaceoch sedan Class. Om du vill ändra hur testerna organiseras väljer du knappen Gruppera eftertestutforskarens gruppknapp och väljer sedan ett nytt grupperingsvillkor.

Skärmbild som visar val för gruppering av tester efter kategori i Testutforskaren.

Du kan definiera dina egna nivåer i hierarkin (gruppera efter State och sedan Class, till exempel) genom att välja Gruppera efter alternativ i önskad ordning.

Skärmbild av Testutforskaren som visar en testhierarki i ett fönster och menyn Gruppera efter i det andra fönstret, med alternativen Klass och Tillstånd valda.

Test Explorer-grupper

Grupp Beskrivning
Varaktighet Grupperar tester efter körningstid: Snabb, Medium, Långsam.
tillstånd Grupperar tester efter körningsresultat: Misslyckade tester, Överhoppade tester, Godkända tester, Ej körda.
Målramverk Grupperar tester efter det ramverk som deras projekt riktar in sig på.
namnområde Grupperar tester efter det innehållande namnområdet.
Project Grupperar tester efter det innehållande projektet.
klass Grupperar tester efter den innehållande klassen.

Egenskaper

Ett drag är vanligtvis ett kategorinamn/värdepar, men det kan också vara en enda kategori. Egenskaper kan tilldelas till metoder som enhetstestramverket identifierar som testmetoder.

Ett enhetstestramverk kan definiera egenskapskategorier. Du kan lägga till värden i egenskapskategorierna för att definiera dina egna kategorinamn/värdepar. Ramverket för enhetstest definierar syntaxen för att ange egenskapskategorier och värden.

Egenskaper i Microsoft Unit Testing Framework för hanterad kod

I Microsoft Unit Testing Framework for Managed Code definierar du ett egenskapsnamn/värdepar i ett TestPropertyAttribute-attribut. Testramverket innehåller också följande fördefinierade egenskaper:

Karaktärsdrag Beskrivning
OwnerAttribute Kategorin Owner definieras av enhetstestramverket och kräver att du anger ett strängvärde för ägaren.
PriorityAttribute Kategorin Priority definieras av enhetstestramverket och kräver att du anger ett heltalsvärde för prioriteten.
TestCategoryAttribute Med attributet TestCategory kan du ange kategorin för ett enhetstest.
TestPropertyAttribute Med attributet TestProperty kan du definiera ett egenskapskategori/värde-par.

Egenskaper i Microsoft Unit Testing Framework för C++

Se och använd Microsoft Unit Testing Framework för C++ i Visual Studio.

Skapa anpassade spellistor

Du kan skapa och spara en lista över tester som du vill köra eller visa som en grupp. När du väljer en spellista visas testerna i listan på en ny Test Explorer-flik. Du kan lägga till ett test i mer än en spellista.

Så här skapar du en spellista:

  1. Välj ett eller flera tester i Testutforskaren.
  2. Högerklicka någonstans i fönstret, peka på Lägg till i spellistaoch välj sedan Ny spellista.

Skärmbild som visar val för att skapa en spellista.

Spellistan öppnas på en ny Test Explorer-flik. Du kan använda den här spellistan en gång och sedan ta bort den. Eller så kan du välja knappen Spara i verktygsfältet för spellistan och sedan välja ett namn och en plats för att spara spellistan.

Skärmbild som visar en spellista som öppnas på en separat testutforskaren-flik.

Så här öppnar du en spellista:

  1. I verktygsfältet i Visual Studio väljer du spellistans ikon.
  2. Välj en tidigare sparad spellista på menyn.

Om du vill redigera en spellista använder du något av följande alternativ:

  • Högerklicka på valfritt test och använd sedan menykommandona för att lägga till eller ta bort det från en spellista.

  • I verktygsfältet väljer du knappen Redigera spellista. Kryssrutor som visas bredvid dina tester visar vilka tester som ingår och exkluderas i spellistan. Redigera grupper efter behov. Den här funktionen startade i Visual Studio 2019 version 16.7.

    Skärmbild som visar knappen Redigera spellista i verktygsfältet.

Du kan också markera eller avmarkera rutorna för de överordnade grupperna i hierarkin. Den här åtgärden skapar en dynamisk spellista som alltid uppdaterar spellistan baserat på de tester som finns i gruppen.

Om du till exempel markerar en kryssruta bredvid en klass blir alla tester som läggs till från den klassen en del av den här spellistan. Om du tar bort ett test från den klassen tas det bort från spellistan.

Du kan lära dig mer om reglerna genom att spara spellistan via knappen Spara i verktygsfältet och sedan öppna den .playlist XML-fil som skapas på disken. Den här filen visar alla regler och enskilda tester som utgör en spellista.

Skärmbild som visar innehållet i en XML-fil för spellistor.

Om du vill skapa en spellista för egenskaper använder du följande format för MSTest-ramverket:

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

Använd följande format för xUnit-ramverket. Kontrollera att det finns ett blanksteg mellan namnet TestCategory och värdet [Value].

<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>

Du kan skapa och spara en lista över tester som du vill köra eller visa som en grupp. När du väljer en spellista visas testerna i listan på en ny Test Explorer-flik. Du kan lägga till ett test i mer än en spellista.

Så här skapar du en spellista:

  1. Välj ett eller flera tester i Testutforskaren.
  2. Högerklicka någonstans i fönstret, peka på Lägg till i spellistaoch välj sedan Ny spellista.

Skärmbild som visar val för att skapa en spellista.

Spellistan öppnas på en ny Test Explorer-flik. Du kan använda den här spellistan en gång och sedan ta bort den. Eller så kan du välja knappen Spara i verktygsfältet för spellistan och sedan välja ett namn och en plats för att spara spellistan.

Skärmbild som visar en spellista som öppnas på en separat testutforskaren-flik.

Så här öppnar du en spellista:

  1. I verktygsfältet i Visual Studio väljer du spellistans ikon.
  2. Välj en tidigare sparad spellista på menyn.

Om du vill redigera en spellista använder du något av följande alternativ:

  • Högerklicka på valfritt test och använd sedan menykommandona för att lägga till eller ta bort det från en spellista.

  • I verktygsfältet väljer du knappen Redigera spellista. Kryssrutor som visas bredvid dina tester visar vilka tester som ingår och exkluderas i spellistan. Redigera grupper efter behov. Den här funktionen startade i Visual Studio 2019 version 16.7.

    Skärmbild som visar knappen Redigera spellista i verktygsfältet.

Du kan också markera eller avmarkera rutorna för de överordnade grupperna i hierarkin. Den här åtgärden skapar en dynamisk spellista som alltid uppdaterar spellistan baserat på de tester som finns i gruppen.

Om du till exempel markerar en kryssruta bredvid en klass blir alla tester som läggs till från den klassen en del av den här spellistan. Om du tar bort ett test från den klassen tas det bort från spellistan.

Du kan lära dig mer om reglerna genom att spara spellistan via knappen Spara i verktygsfältet och sedan öppna den .playlist XML-fil som skapas på disken. Den här filen visar alla regler och enskilda tester som utgör en spellista.

Skärmbild som visar innehållet i en XML-fil för spellistor.

Om du vill skapa en spellista för egenskaper använder du följande format för MSTest-ramverket:

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

Använd följande format för xUnit-ramverket. Kontrollera att det finns ett blanksteg mellan namnet TestCategory och värdet [Value].

<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>

TestUtforskaren-kolumner

Grupper är också tillgängliga som kolumner i Test Explorer, tillsammans med Egenskaper, Stack Trace, Felmeddelandeoch Fullständigt kvalificerat namn. De flesta kolumner visas inte som standard. Du kan anpassa vilka kolumner som visas.

Skärmbild av Visual Studio Test Explorer som visar en meny med kolumner valda och en undermeny med Varaktighet, Egenskaper och Felmeddelande valt.

Kolumner kan filtreras, ordnas om och sorteras:

  • Om du vill filtrera efter specifika egenskaper väljer du filterikonen överst i kolumnen Properties.

    Skärmbild av kolumnfiltret.

  • Om du vill ändra ordningen på kolumnerna väljer du en kolumnrubrik och drar den åt vänster eller höger.

  • Om du vill sortera en kolumn väljer du kolumnrubriken. Det går inte att sortera alla kolumner. Du kan också sortera efter en sekundär kolumn genom att hålla skiftnyckeln och välja ytterligare en kolumnrubrik.

    Skärmbild av en kolumnsortering.

TestUtforskaren-kolumner

Grupper är också tillgängliga som kolumner i Test Explorer, tillsammans med Egenskaper, Stack Trace, Felmeddelandeoch Fullständigt kvalificerat namn. De flesta kolumner visas inte som standard. Du kan anpassa vilka kolumner som visas.

Skärmbild av Visual Studio Test Explorer som visar en meny med kolumner valda och en undermeny med Varaktighet, Egenskaper och Felmeddelande valt.

Kolumner kan filtreras, ordnas om och sorteras:

  • Om du vill filtrera efter specifika egenskaper väljer du filterikonen överst i kolumnen Properties.

    Skärmbild av kolumnfiltret.

  • Om du vill ändra ordningen på kolumnerna väljer du en kolumnrubrik och drar den åt vänster eller höger.

  • Om du vill sortera en kolumn väljer du kolumnrubriken. Det går inte att sortera alla kolumner. Du kan också sortera efter en sekundär kolumn genom att hålla skiftnyckeln och välja ytterligare en kolumnrubrik.

    Skärmbild av en kolumnsortering.

Sök efter och filtrera testlistan

Du kan också använda testutforskarens sökfilter för att begränsa testmetoderna i dina projekt som du visar och kör.

När du skriver en sträng i sökrutan Test Explorer och väljer returnyckeln filtreras testlistan för att endast visa tester vars fullständigt kvalificerade namn innehåller strängen.

Så här filtrerar du efter ett annat kriterium:

  1. Öppna listrutan till höger om sökrutan.

  2. Välj ett nytt kriterium.

  3. Ange filtervärdet mellan citattecknen. Om du vill söka efter en exakt matchning på strängen i stället för en innehållande matchning använder du ett likhetstecken (=) i stället för kolonet (:).

Skärmbild av filtertester i TestUtforskaren.

Skärmbild av filtertester i TestUtforskaren.

Not

Sökningar är skiftlägesokänsliga och matchar den angivna strängen med valfri del av kriterievärdet.

Kvalificerare Beskrivning
tillstånd Söker i testutforskarens kategorinamn efter matchningar: Misslyckade tester, Överhoppade tester, Godkänt test.
egenskaper Söker i både egenskapskategorier och värden efter matchningar. Ramverket för enhetstest definierar syntaxen för att ange egenskapskategorier och värden.
fullständigt kvalificerat namn Söker efter matchningar i det fullständigt kvalificerade namnet på testnamnområden, klasser och metoder.
Project Söker efter matchningar i testprojektnamnen.
Målramverk Söker i testramverken efter matchningar.
namnområde Söker i testnamnrymderna efter matchningar.
klass Söker efter matchningar i testklassernas namn.

Om du vill exkludera en delmängd av resultatet av ett filter använder du följande syntax:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

Till exempel returnerar FullName:"MyClass" - FullName:"PerfTest" alla tester som innehåller "MyClass" i deras namn, förutom tester som även innehåller "PerfTest" i deras namn.

Analysera enhetens testkodtäckning

Du kan fastställa hur mycket produktkod som enhetstesterna faktiskt testar med hjälp av Visual Studio Code-täckningsverktyget som är tillgängligt i Visual Studio Enterprise. Du kan köra kodtäckning på valda tester eller på alla tester i en lösning.

Så här kör du kodtäckning för testmetoder i en lösning:

  • Högerklicka i Test Explorer och välj sedan Analysera kodtäckning för valda tester.

Fönstret kodtäckningsresultat visar procentandelen av de produktkodblock som har täckts per rad, funktion, klass, namnrymd och modul.

Mer information finns i Använda kodtäckning för att avgöra hur mycket kod som testas.

Testa genvägar

Du kan köra tester från Test Explorer genom att antingen:

  • Högerklicka på ett test i kodredigeraren och välj sedan Kör test
  • Använda standardgenvägarna Test Explorer i Visual Studio

Några av genvägarna är kontextbaserade. De kör, felsöker, eller profilerar tester baserad på var markören är i kodredigeraren. Om markören är placerad i en testmetod, körs den testmetoden. Om markören är på klassnivå körs alla tester i denna klass. Samma beteende gäller för namnområdesnivån.

Frekventa kommandon Kortkommandon
TestExplorer.DebugAllTestsInContext Ctrl+R, Ctrl+T
TestExplorer.RunAllTestsInContext Ctrl+R, T
TestExplorer.RunAllTests Ctrl+R, A
TestExplorer.RepeatLastRun Ctrl+R, L

Not

Du kan inte köra ett test i en abstrakt klass eftersom tester endast definieras i abstrakta klasser och inte instansieras. Om du vill köra tester i abstrakta klasser skapar du en klass som härleds från den abstrakta klassen.

Konfigurera ljudsignaler

Test Explorer kan spela upp något av följande ljud när en testkörning är klar:

  • Ett ljud som indikerar att testkörningen lyckades och att alla tester klarades av
  • Ett ljud som indikerar att testkörningen har slutförts med minst ett misslyckat test

Du kan konfigurera dessa ljud i standarddialogrutan för Windows 11 Sound. Den här funktionen är tillgänglig från och med Visual Studio 2019 Update 16.9 Preview 3.

  1. Öppna standarddialogrutan för Windows 11 Sound.
  2. Gå till fliken ljud.
  3. Hitta kategorin Microsoft Visual Studio. Välj det förinställda ljudet Test Run Succeeded eller Test Run Failed, eller bläddra till din egen ljudfil.

Skärmbild av Windows 11-ljud-dialogrutan.