Dela via


Testning i .NET

Den här artikeln beskriver begreppet testning och illustrerar hur olika typer av tester kan användas för att validera kod. Det finns olika verktyg för att testa .NET program, till exempel CLI .NET CLI eller Integrerade utvecklingsmiljöer (IDE).

Testtyper

Automatiserade tester är ett bra sätt att se till att programkoden gör vad författarna har för avsikt. Den här artikeln beskriver enhetstester, integreringstester och belastningstester.

Enhetstester

Ett enhetstest är ett test som utför enskilda programvarukomponenter eller metoder, även kallat en "arbetsenhet". Enhetstester bör endast testa kod inom utvecklarens kontroll. De testar inte infrastrukturproblem. Infrastrukturproblem omfattar interaktion med databaser, filsystem och nätverksresurser.

Mer information om hur du skapar enhetstester finns i Testverktyg.

Integreringstester

Ett integrationstest skiljer sig från ett enhetstest eftersom det utövar två eller flera programvarukomponenters förmåga att fungera tillsammans, även kallat deras "integrering". Dessa tester körs på ett bredare spektrum av systemet som testas, medan enhetstester fokuserar på enskilda komponenter. Integreringstester omfattar ofta infrastrukturproblem.

Belastningstester

Ett belastningstest syftar till att avgöra om ett system kan hantera en angiven belastning eller inte. Till exempel antalet samtidiga användare som använder ett program och appens möjlighet att hantera interaktioner dynamiskt. Mer information om belastningstestning av webbprogram finns i ASP.NET Core belastnings-/stresstestning.

Testöverväganden

Tänk på att det finns bästa praxis för att skriva tester. Till exempel testdriven utveckling (TDD) är när du skriver ett enhetstest innan du skriver koden som det är avsett att kontrollera. TDD är som att skapa en disposition för en bok innan du skriver den. Enhetstestet hjälper utvecklare att skriva enklare, läsbar och effektiv kod.

Testverktyg

När du kör tester i .NET finns det två komponenter: testplattformen och testramverket.

Testplattformar

Testplattformen är den motor som kör tester och kommunicerar med verktyg som IDE:er och CLI.

Använd Översikt över testplattformar för att förstå skillnaderna mellan VSTest och Microsoft.Testing.Platform och välj den bästa plattformen för ditt scenario.

Migreringsvägledning finns i Migrera från VSTest till Microsoft.Testing.Platform.

Testramverk

Testramverket bygger på testplattformen. Den definierar den uppsättning attribut och API:er som är tillgängliga för dig som testförfattare. Den drivs vanligtvis av ett testkort som fungerar som ett kommunikationslager mellan testramverket och testplattformen. De populära testramverken är MSTest, NUnit, TUnit och xUnit.net.

MSTest

MSTest är Microsofts testramverk för alla .NET språk. Det är utökningsbart och fungerar med .NET CLI, Visual Studio, Visual Studio Code och Rider. Den stöder både VSTest och Microsoft.Testing.Platform.

Mer information finns i följande resurser:

NUnit

NUnit är ett ramverk för enhetstestning för alla .NET språk. Från början portades NUnit från JUnit och den aktuella produktionsversionen har skrivits om med många nya funktioner och stöd för en mängd olika .NET plattformar. Det är en project av .NET Foundation. Den stöder både VSTest och Microsoft.Testing.Platform.

Mer information finns i följande resurser:

TUnit

TUnit är helt byggd ovanpå Microsoft.Testing.Platform och stöder inte VSTest. Mer information finns i TUnit-dokumentationen.

xUnit.net

xUnit.net är ett kostnadsfritt, communityfokuserat enhetstestverktyg med öppen källkod för .NET. Den ursprungliga uppfinnaren av NUnit v2 skrev xUnit.net. xUnit.net är den senaste tekniken för enhetstestning .NET appar. Det fungerar också med ReSharper, CodeRush och TestDriven.NET. xUnit.net är en project av .NET Foundation och fungerar enligt dess uppförandekod. Den stöder både VSTest och Microsoft.Testing.Platform

Mer information finns i följande resurser:

Köra tester

.NET CLI

Du kan köra enhetstester från alla testprojekt i en lösning med hjälp av kommandot .NET CLI med kommandot dotnet. .NET CLI exponerar de flesta funktioner som Integrerade utvecklingsmiljöer (IDE) göra tillgängliga via användargränssnitt. .NET CLI är plattformsoberoende och kan användas som en del av kontinuerlig integrering och leverans pipelines. .NET CLI används med skriptade processer för att automatisera vanliga uppgifter.

IDE

Oavsett om du använder Visual Studio, Visual Studio Code eller Rider finns det grafiska användargränssnitt för testningsfunktioner. Det finns fler funktioner tillgängliga för IDE:er än CLI, till exempel Live Unit Testing. Mer information finns i Inkludera och exkludera tester med Visual Studio.

Se även

Mer information finns i följande artiklar: