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.
MTP prend en charge l’utilisation de fichiers de configuration et de variables d’environnement pour configurer le comportement de la plateforme de test. Cet article décrit les paramètres de configuration que vous pouvez utiliser pour configurer la plateforme de test.
testconfig.json
La plateforme de test utilise un fichier de configuration nommé [appname].testconfig.json pour configurer le comportement de la plateforme de test. Le fichier testconfig.json est un fichier JSON qui contient les paramètres de configuration de la plateforme de test.
Le fichier testconfig.json a la structure suivante :
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
La plateforme détecte et charge automatiquement le fichier [appname].testconfig.json situé dans le répertoire de sortie du projet de test (à proximité de l’exécutable).
Lorsque vous utilisez Microsoft.Testing.Platform.MSBuild, vous pouvez simplement créer un fichier testconfig.json qui sera automatiquement renommé en [nom_application].testconfig.json et déplacé vers le répertoire de sortie du projet de test.
À compter de MTP 1.5, vous pouvez utiliser l’argument --config-file de ligne de commande pour spécifier le chemin d’accès au testconfig.json. Ce fichier est prioritaire sur le fichier [appname].testconfig.json .
Remarque
Le fichier [appname].testconfig.json sera remplacé sur les builds suivantes.
Utiliser un testconfig.json centralisé
Si vous souhaitez un seul testconfig.json partagé entre plusieurs projets de test, vous pouvez le placer dans un emplacement central et le transmettre via --config-file. Lorsque MSBuild est disponible (par exemple, dotnet test ou dotnet run), vous pouvez utiliser la TestingPlatformCommandLineArguments propriété MSBuild pour passer automatiquement l’argument. L’ajout de ceci à un répertoire.Build.props à la racine du référentiel garantit que tous les projets de test utilisent la même configuration :
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Priorité de la configuration
Lorsque le même paramètre peut être spécifié de plusieurs façons, MTP détermine la valeur à appliquer selon l’ordre suivant (la première correspondance prévaut) :
- Arguments de ligne de commande (par exemple,
--results-directory) - Variables d'environnement
- paramètres detestconfig.json
- Valeurs par défaut intégrées
Options de plateforme
La platformOptions section du fichier testconfig.json configure le comportement principal de la plateforme de test. Le tableau suivant répertorie toutes les options de plateforme prises en charge :
| Entrée | Par défaut | Description |
|---|---|---|
resultDirectory |
TestResults |
Répertoire dans lequel les résultats du test sont placés. Il peut s’agir d’un chemin relatif (résolu à partir du répertoire de travail actuel) ou d’un chemin absolu. L’option --results-directory de ligne de commande est prioritaire. |
exitProcessOnUnhandledException |
false |
Lorsqu’il est défini sur true, le processus hôte de test se ferme immédiatement en cas d’exception non gérée au lieu de permettre un arrêt propre. La TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION variable d’environnement (valeurs 1 ou 0) est prioritaire. |
Remarque
Des options internes supplémentaires de la plateforme sont disponibles pour des scénarios avancés (tels que les délais d’expiration des pipes nommés pour les contrôleurs d’hôte de test). Ces options sont destinées à une utilisation de l’infrastructure et ne sont pas abordées ici.
Exemple :
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
Les options d’extension sont disponibles uniquement en ligne de commande.
Les fonctionnalités d’extension telles que le vidage sur incident, le vidage en cas de blocage, la nouvelle tentative, les rapports TRX et la couverture du code ne sont pas configurables via testconfig.json. Ces fonctionnalités sont configurées exclusivement par le biais d’arguments de ligne de commande.
Pour obtenir une référence complète des options de ligne de commande, consultez la référence des options CLI MTP.
Tester les paramètres spécifiques à l’infrastructure
Les frameworks de test peuvent définir leurs propres sections de configuration dans le fichier testconfig.json . Reportez-vous à la documentation de votre infrastructure de test :
- MSTest : Configurer MSTest — testconfig.json
- xUnit.net v3 : xUnit.net testconfig.json
- NUnit: consultez la documentation NUnit pour obtenir les informations les plus récentes sur la prise en charge de Microsoft.Testing.Platform.
- TUnit : consultez la documentation TUnit pour connaître la prise en charge la plus récente de Microsoft.Testing.Platform.
Exemple de testconfig.json
L’exemple suivant montre un fichier testconfig.json qui configure les options de plateforme et les paramètres MSTest :
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migration de .runsettings vers testconfig.json
Si vous effectuez une migration à partir d’un fichier .runsettings , le tableau suivant mappe les paramètres courants à leurs testconfig.json équivalents ou alternatives :
| Paramètre de .runsettings | équivalent testconfig.json | Remarques |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Pas d'équivalent | Le parallélisme au niveau du processus est contrôlé par l’option dotnet test --max-parallel-test-modules ou par l’option MSBuild /m. |
MSTest/* |
mstest.* |
Consultez Configurer MSTest — testconfig.json. |
xUnit/* |
xUnit.* |
Voir xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
CLI uniquement | Utilisez --report-trx ou des options CLI similaires. |
DataCollectionRunSettings (blâme) |
CLI uniquement | Utiliser --crashdump et --hangdump options CLI. Voir crash et blocage des vidages. |
DataCollectionRunSettings (couverture) |
CLI uniquement | Utilisez l’option --coverage CLI. Consultez la couverture du code. |
TestRunParameters |
CLI --test-parameter |
Utiliser --test-parameter key=value sur la ligne de commande. |
Variables d'environnement
Les variables d’environnement peuvent être utilisées pour fournir des informations de configuration d’exécution.
Remarque
Les variables d’environnement sont prioritaires sur les paramètres de configuration dans le fichier testconfig.json .
TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION variable d’environnement
Lorsqu’il est défini sur 1, le processus hôte des tests se ferme immédiatement en cas d’exception non gérée. Lorsqu’elle est définie 0, la plateforme autorise l’arrêt normal. Ce paramètre est prioritaire sur la platformOptions:exitProcessOnUnhandledException configuration.
TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT variable d’environnement
Remplace le délai d’expiration par défaut (300 secondes) utilisé pour les connexions de canal nommé entre le contrôleur hôte de test et l’hôte de test. La valeur doit être une chaîne compatible avec TimeSpan.
TESTINGPLATFORM_UI_LANGUAGE variable d’environnement
À partir de MTP 1.5, cette variable d’environnement définit la langue de la plateforme pour l’affichage des messages et des journaux à l’aide d’une valeur de paramètres régionaux telle que en-us. Ce langage est prioritaire sur les langages du Kit de développement logiciel (SDK) Visual Studio et .NET. Les valeurs prises en charge sont les mêmes que pour Visual Studio. Pour plus d’informations, consultez la section relative à la modification de la langue du programme d’installation dans la documentation d’installation de Visual Studio.
TESTINGPLATFORM_DIAGNOSTIC variable d’environnement
Si la valeur est définie 1, active la journalisation des diagnostics.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY variable d’environnement
Définit le niveau de détail lorsque les diagnostics sont activés. Les valeurs disponibles sont Trace, Debug, Information, Warning, Error ou Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY variable d’environnement
Répertoire de sortie de la journalisation des diagnostics. S’il n’est pas spécifié, le fichier est généré dans le répertoire TestResults par défaut.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX variable d’environnement
Préfixe du nom de fichier journal. La valeur par défaut est "log_".
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE variable d’environnement
Permet d'imposer au journalisateur de fichiers intégré d'écrire les logs synchronement. Utile pour les scénarios où vous ne souhaitez perdre aucune entrée de journal (si le processus se bloque). Cela ralentit l’exécution de tests.
TESTINGPLATFORM_EXITCODE_IGNORE variable d’environnement
Liste séparée par des points-virgules des codes de sortie à ignorer. Lorsqu’un code de sortie est ignoré, le processus retourne 0 à la place. Par exemple, TESTINGPLATFORM_EXITCODE_IGNORE=2;8 ignore les échecs de test et les scénarios sans tests exécutés.
Remarque
Les variables d’environnement liées au diagnostic sont prioritaires sur leurs arguments de ligne de commande correspondants --diagnostic-* .