Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln är avsedd för utvecklare som skapar anpassade testramverk eller tillägg för Microsoft.Testing.Platform.
Not
Fullständig exempelkod finns i TestingPlatformExamples på Microsoft Test Framework-lagringsplatsen.
Sammanfattning av tilläggspunkt
| Utökningspunkt | In-/utgående process | Avsikt |
|---|---|---|
| ITestFramework | Pågående | Det enda obligatoriska tillägget. Identifierar och kör tester. |
| IDataConsumer | Pågående | Prenumererar på och bearbetar testdata från meddelandebussen. |
| ITestSessionLifetimeHandler | Pågående | Kör kod före och efter en testsession. |
| ITestApplicationLifecycleCallbacks | Pågående | Kör kod i början och i slutet av testvärden. |
| ICommandLineOptionsProvider | Both | Lägger till anpassade kommandoradsalternativ. |
| ITestHostEnvironmentVariableProvider | utanför processen | Ställer in miljövariabler innan testhosten startar. |
| ITestHostProcessLifetimeHandler | utanför processen | Övervakar testvärdprocessen externt. |
In-process vs out-of-process utvidgningar
Tillägg kategoriseras i två typer:
Processtillägg körs i testvärdprocessen, tillsammans med testramverket. Registrera dem via
builder.TestHost:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHost.AddXXX(/* ... */);Out-of-process-tillägg körs i en separat process som observerar testvärden. Registrera dem via
builder.TestHostControllers:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHostControllers.AddXXX(/* ... */);
Out-of-process-tillägg behövs när:
- Du måste ange miljöinställningar innan testhosten startar.
- Du måste övervaka testvärden externt eftersom användarkoden kan orsaka att processen kraschar eller hänger sig.
När ett tillägg som inte är i processen har registrerats startar plattformen en andra process automatiskt.
Gränssnittet IExtension
Alla tilläggspunkter ärver från IExtension, vilket ger möjlighet till identifiering och val av att delta eller avstå:
public interface IExtension
{
string Uid { get; }
string Version { get; }
string DisplayName { get; }
string Description { get; }
Task<bool> IsEnabledAsync();
}
-
Uid: En unik identifierare för tillägget. Välj ett unikt värde för att undvika konflikter. -
Version: Versionen av tillägget med hjälp av semantisk versionshantering. -
DisplayName: Ett användarvänligt namn som visas i loggar och--infoutdata. -
Description: En beskrivning som visas i--infoutdata. -
IsEnabledAsync(): Gå tillbakafalseför att exkludera tillägget från sessionen. Vanligtvis baseras beslut på konfigurations- eller kommandoradsalternativ.
Vad du ska läsa härnäst
-
Skapa ett testramverk: Skapa en anpassad
ITestFrameworkimplementering, hantera begäranden och rapportera testresultat. - Bygga tillägg: Skapa tillägg inom process och utanför process, såsom datakonsumenter, sessionshanterare och processövervakare.
- VSTest Bridge: Förenkla migreringen av befintliga VSTest-baserade testramverk till Microsoft.Testing.Platform.
- Funktioner: Deklarera och fråga efter ramverk och tilläggsfunktioner.
- Services: Åtkomstkonfiguration, loggning, meddelandebuss och andra plattformstjänster.