Freigeben über


Testen in .NET

In diesem Artikel wird das Testkonzept vorgestellt und veranschaulicht, wie verschiedene Arten von Tests zum Überprüfen von Code verwendet werden können. Es stehen verschiedene Tools zum Testen von .NET-Anwendungen zur Verfügung, z. B. die .NET CLI oder integrierte Entwicklungsumgebungen (IDEs).

Testtypen

Automatisierte Tests sind eine hervorragende Möglichkeit, um sicherzustellen, dass der Anwendungscode die von den Autoren beabsichtigten Aufgaben ausführt. In diesem Artikel werden Komponententests, Integrationstests und Auslastungstests behandelt.

Komponententests

Ein Komponententest ist ein Test, der einzelne Softwarekomponenten oder -methoden trainiert, auch als "Arbeitseinheit" bezeichnet. Komponententests sollten nur Code innerhalb der Steuerung des Entwicklers testen. Sie testen keine Infrastrukturbedenken. Zu den Infrastrukturaspekten gehören die Interaktion mit Datenbanken, Dateisystemen und Netzwerkressourcen.

Weitere Informationen zum Erstellen von Komponententests finden Sie unter "Testtools".

Integrationstests

Ein Integrationstest unterscheidet sich von einem Komponententest darin, dass es die Fähigkeit von zwei oder mehr Softwarekomponenten, zusammen zu funktionieren, auch als "Integration" bezeichnet. Diese Tests arbeiten auf einem breiteren Spektrum des getesteten Systems, während komponententests sich auf einzelne Komponenten konzentrieren. Häufig umfassen Integrationstests Infrastrukturbedenken.

Auslastungstests

Ein Lasttest zielt darauf ab, zu bestimmen, ob ein System eine angegebene Last verarbeiten kann. Beispielsweise die Anzahl der gleichzeitigen Benutzer, die eine Anwendung verwenden, und die Fähigkeit der App, Interaktionen reaktionsfähig zu behandeln. Weitere Informationen zum Ladentest von Webanwendungen finden Sie unter ASP.NET Core load/stress testing.

Testüberlegungen

Beachten Sie, dass es bewährte Methoden zum Schreiben von Tests gibt. Beispiel: Test Driven Development (TDD) ist der Zeitpunkt, an dem Sie einen Komponententest schreiben, bevor der Code überprüft werden soll. TDD ist wie das Erstellen einer Gliederung für ein Buch, bevor Sie es schreiben. Der Komponententest hilft Entwicklern, einfacheren, lesbaren und effizienten Code zu schreiben.

Testtools

Bei der Ausführung von Tests in .NET sind zwei Komponenten beteiligt: die Testplattform und das Testframework.

Testplattformen

Die Testplattform ist das Modul, das die Tests ausführt und als Kommunikationskanal mit IDEs fungiert. Beispielsweise kann Visual Studio eine Ermittlungsanforderung an die Testplattform senden, damit sie die verfügbaren Tests im Test-Explorer anzeigen kann. Die Testplattform antwortet mit den gefundenen Tests auf die IDE zurück. Ähnliche Kommunikation erfolgt für die Testausführung.

VSTest wurde seit vielen Jahren in .NET verwendet und war die einzige Testplattform im Ökosystem. Anfang 2024 wurde die erste stabile Version einer neuen Testplattform namens Microsoft.Testing.Platform (MTP) veröffentlicht.

Test-Frameworks

Das Testframework basiert auf der Testplattform. Er definiert den Satz von Attributen und APIs, die Ihnen als Testautor zur Verfügung stehen. Es wird in der Regel von einem Testadapter unterstützt, der als Kommunikationsschicht zwischen dem Testframework und der Testplattform fungiert. Die gängigen Testframeworks sind MSTest, NUnit, TUnit und xUnit.net.

MSTest

MSTest ist das Microsoft-Testframework für alle .NET-Sprachen. Es ist erweiterbar und funktioniert mit .NET CLI, Visual Studio, Visual Studio Code und Rider. Es unterstützt sowohl VSTest als auch Microsoft.Testing.Platform.

Weitere Informationen finden Sie in den folgenden Ressourcen:

NUnit

NUnit ist ein Komponententestframework für alle .NET-Sprachen. Zunächst wurde NUnit von JUnit portiert, und die aktuelle Produktionsversion wurde mit vielen neuen Features und Unterstützung für eine vielzahl von .NET-Plattformen umgeschrieben. Es ist ein Projekt der .NET Foundation. Es unterstützt sowohl VSTest als auch Microsoft.Testing.Platform.

Weitere Informationen finden Sie in den folgenden Ressourcen:

TUnit

TUnit basiert vollständig auf Microsoft.Testing.Platform und unterstützt VSTest nicht. Weitere Informationen finden Sie in der TUnit-Dokumentation.

xUnit.net

xUnit.net ist ein kostenloses, open-source-, communityorientiertes Komponententesttool für .NET. Der ursprüngliche Erfinder von NUnit v2 schrieb xUnit.net. xUnit.net ist die neueste Technologie für Unit-Tests von .NET-Apps. Es funktioniert auch mit ReSharper, CodeRush und TestDriven.NET. xUnit.net ist ein Projekt der .NET Foundation und arbeitet unter seinem Verhaltenskodex. Es unterstützt sowohl VSTest als auch Microsoft.Testing.Platform

Weitere Informationen finden Sie in den folgenden Ressourcen:

Ausführen von Tests

.NET CLI

Sie können Komponententests aus allen Testprojekten in einer Lösung mithilfe der .NET CLI mit dem Dotnet-Testbefehl ausführen. Die .NET CLI macht die meisten Funktionen verfügbar, die integrierte Entwicklungsumgebungen (INTEGRATED Development Environments, IDEs) über Benutzeroberflächen zur Verfügung stellen. Die .NET CLI ist plattformübergreifend und kann als Teil der kontinuierlichen Integrations- und Übermittlungspipeline verwendet werden. Die .NET CLI wird mit skriptierten Prozessen verwendet, um allgemeine Aufgaben zu automatisieren.

ALAND

Ganz gleich, ob Sie Visual Studio, Visual Studio Code oder Rider verwenden, es gibt grafische Benutzeroberflächen zum Testen der Funktionalität. Es gibt mehr Funktionen für IDEs als die CLI, z. B. Live Unit Testing. Weitere Informationen finden Sie unter Einschließen und Ausschließen von Tests mit Visual Studio.

Siehe auch

Weitere Informationen finden Sie in den folgenden Artikeln: