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).
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.
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.
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 efter och väljer sedan ett nytt grupperingsvillkor.
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.
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 efter och väljer sedan ett nytt grupperingsvillkor.
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.
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:
- Välj ett eller flera tester i Testutforskaren.
- Högerklicka någonstans i fönstret, peka på Lägg till i spellistaoch välj sedan Ny 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.
Så här öppnar du en spellista:
- I verktygsfältet i Visual Studio väljer du spellistans ikon.
- 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.
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.
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:
- Välj ett eller flera tester i Testutforskaren.
- Högerklicka någonstans i fönstret, peka på Lägg till i spellistaoch välj sedan Ny 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.
Så här öppnar du en spellista:
- I verktygsfältet i Visual Studio väljer du spellistans ikon.
- 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.
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.
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.
Kolumner kan filtreras, ordnas om och sorteras:
Om du vill filtrera efter specifika egenskaper väljer du filterikonen överst i kolumnen Properties.
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.
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.
Kolumner kan filtreras, ordnas om och sorteras:
Om du vill filtrera efter specifika egenskaper väljer du filterikonen överst i kolumnen Properties.
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.
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:
Öppna listrutan till höger om sökrutan.
Välj ett nytt kriterium.
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 (:).
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.
- Öppna standarddialogrutan för Windows 11 Sound.
- Gå till fliken ljud.
- 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.
Relaterat innehåll
- Unit testar din kod
- Felsöka enhetstester med Test Explorer
- Kör ett enhetstest som en 64-bitarsprocess
- vanliga frågor och svar om Test Explorer