Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel richtet sich an Entwickler, die benutzerdefinierte Testframeworks oder Erweiterungen für Microsoft.Testing.Platform erstellen.
Hinweis
Den vollständigen Beispielcode finden Sie unter " TestingPlatformExamples " im Microsoft Test Framework-Repository.
Zusammenfassung des Erweiterungspunkts
| Erweiterungspunkt | Ein-/Ausprozess | Zweck |
|---|---|---|
| ITestFramework | In Bearbeitung | Die einzige obligatorische Erweiterung. Ermittelt und führt Tests aus. |
| IDataConsumer | In Bearbeitung | Abonniert und verarbeitet Testdaten aus dem Nachrichtenbus. |
| ITestSessionLifetimeHandler | In Bearbeitung | Führt Code vor und nach einer Testsitzung aus. |
| ITestApplicationLifecycleCallbacks | In Bearbeitung | Führt Code ganz am Anfang und ganz am Ende des Testhosts aus. |
| ICommandLineOptionsProvider | Beides | Fügt benutzerdefinierte Befehlszeilenoptionen hinzu. |
| ITestHostEnvironmentVariableProvider | prozessübergreifend | Legt Umgebungsvariablen fest, bevor der Testhost gestartet wird. |
| ITestHostProcessLifetimeHandler | Außerhalb des Prozesses | Beobachtet den Testhostprozess extern. |
In-Process- und Out-of-Process-Erweiterungen
Erweiterungen werden in zwei Typen unterteilt:
Prozessinterne Erweiterungen werden zusammen mit dem Testframework innerhalb des Testhostprozesses ausgeführt. Registrieren Sie sie über
builder.TestHost:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHost.AddXXX(/* ... */);Out-of-Process-Erweiterungen werden in einem separaten Prozess ausgeführt, der den Testhost beobachtet. Registrieren Sie sie über
builder.TestHostControllers:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHostControllers.AddXXX(/* ... */);
Out-of-Process-Erweiterungen sind erforderlich, wenn:
- Sie müssen Umgebungsvariablen festlegen, bevor der Testhost gestartet wird.
- Sie müssen den Testhost extern überwachen, da der Benutzercode möglicherweise abstürzt oder den Prozess aufhängt.
Wenn eine Out-of-Process-Erweiterung registriert wird, startet die Plattform automatisch einen zweiten Prozess.
Die IExtension-Schnittstelle
Alle Erweiterungspunkte erben von IExtension, das Identifikation und Opt-In/Opt-Out bietet:
public interface IExtension
{
string Uid { get; }
string Version { get; }
string DisplayName { get; }
string Description { get; }
Task<bool> IsEnabledAsync();
}
-
Uid: Ein eindeutiger Bezeichner für die Erweiterung. Wählen Sie einen eindeutigen Wert aus, um Konflikte zu vermeiden. -
Version: Die Version der Erweiterung unter Verwendung der semantischen Versionsverwaltung. -
DisplayName: Ein benutzerfreundlicher Name, der in Protokollen und--infoAusgaben angezeigt wird. -
Description: Eine Beschreibung, die in der--infoAusgabe angezeigt wird. -
IsEnabledAsync(): Kehren Siefalsezurück, um die Erweiterung aus der Sitzung auszuschließen. In der Regel basieren Entscheidungen auf Konfigurationsoptionen oder Befehlszeilenoptionen.
Was Sie als Nächstes lesen sollten
-
Erstellen Sie ein Testframework: Erstellen Sie eine benutzerdefinierte
ITestFrameworkImplementierung, behandeln Sie Anforderungen und melden Sie Testergebnisse. - Erweiterungen erstellen: Erstellen Sie In-Process- und Out-of-Process-Erweiterungen wie Datenkonsumenten, Sitzungshandlern und Prozessmonitoren.
- VSTest-Brücke: Vereinfachen Der Migration vorhandener VSTest-basierter Testframeworks zu Microsoft.Testing.Platform.
- Fähigkeiten: Fähigkeiten des Frameworks und der Erweiterungen deklarieren und abfragen.
- Dienste: Access-Konfiguration, Protokollierung, Nachrichtenbus und andere Plattformdienste.