Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article est destiné aux développeurs qui créent des frameworks de test ou des extensions personnalisés pour Microsoft.Testing.Platform.
Remarque
Pour obtenir un exemple de code complet, consultez la TestingPlatformExamples dans le référentiel Microsoft Test Framework.
Résumé du point d’extension
| Point d’extension | Interne/Externe au processus | Objectif |
|---|---|---|
| ITestFramework | En cours | La seule extension obligatoire. Découvre et exécute des tests. |
| IDataConsumer | En cours | S’abonne aux données de test et les traite à partir du bus de messages. |
| ITestSessionLifetimeHandler | En cours | Exécute du code avant et après une session de test. |
| ITestApplicationLifecycleCallbacks | En cours | Exécute du code au début et à la fin de l’hôte de test. |
| ICommandLineOptionsProvider | Les deux | Ajoute des options de ligne de commande personnalisées. |
| ITestHostEnvironmentVariableProvider | Externe au processus | Définit les variables d’environnement avant le démarrage de l’hôte de test. |
| ITestHostProcessLifetimeHandler | Externe au processus | Observe le processus hôte de test en externe. |
Extensions en cours d'exécution vs hors processus
Les extensions sont classées en deux types :
Les extensions in-process s’exécutent à l’intérieur du processus hôte de test, en même temps que l’infrastructure de test. Inscrivez-les via
builder.TestHost:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHost.AddXXX(/* ... */);Les extensions hors processus s’exécutent dans un processus distinct qui observe l’hôte de test. Inscrivez-les via
builder.TestHostControllers:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHostControllers.AddXXX(/* ... */);
Les extensions hors processus sont nécessaires quand :
- Vous devez définir des variables d’environnement avant le démarrage de l’hôte de test.
- Vous devez surveiller l’hôte de test en externe, car le code utilisateur peut se bloquer ou bloquer le processus.
Quand une extension hors processus est inscrite, la plateforme démarre automatiquement un deuxième processus.
L’interface IExtension
Tous les points d’extension héritent de IExtension, qui fournit l’identification et l’opt-in/opt-out :
public interface IExtension
{
string Uid { get; }
string Version { get; }
string DisplayName { get; }
string Description { get; }
Task<bool> IsEnabledAsync();
}
-
Uid: identificateur unique de l’extension. Choisissez une valeur unique pour éviter les conflits. -
Version: version de l’extension, à l’aide du contrôle de version sémantique. -
DisplayName: nom convivial qui apparaît dans les journaux et--infola sortie. -
Description: description qui apparaît dans la--infosortie. -
IsEnabledAsync(): Retirerfalsepour exclure l’extension de la session. En règle générale, les décisions sont basées sur des options de configuration ou de ligne de commande.
Qu’est-ce à lire ensuite
-
Créez une infrastructure de test : créez une implémentation personnalisée
ITestFramework, gérez les demandes et signalez les résultats des tests. - Construire des extensions : créez des extensions internes au processus et externes au processus telles que les consommateurs de données, les gestionnaires de session et les moniteurs de processus.
- VSTest Bridge : Simplifiez la migration des frameworks de test VSTest existants vers Microsoft.Testing.Platform.
- Fonctionnalités : déclarer et interroger des fonctionnalités d’infrastructure et d’extension.
- Services : Configuration d'accès, journalisation, bus de messages et autres services de plateforme.