Dela via


Testa 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 .NET CLI- eller IDE(Integrated Development Environments).

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 testerna och fungerar som en kommunikationskanal med IDE:er. Visual Studio kan till exempel skicka en identifieringsbegäran till testplattformen så att den kan visa tillgängliga tester i Test Explorer. Testplattformen svarar tillbaka på IDE med de tester som hittades. Liknande kommunikation sker för testutförande.

VSTest har använts i många år i .NET och var den enda testplattformen i ekosystemet. I början av 2024 släpptes den första stabila versionen av en ny testplattform som heter Microsoft.Testing.Platform (MTP).

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. Den är utökningsbar 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 ett projekt 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 av .NET-appar. Det fungerar också med ReSharper, CodeRush och TestDriven.NET. xUnit.net är ett projekt 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 test. .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 pipelines för kontinuerlig integrering och leverans. .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: