Exécuter et déboguer des tests

Les projets de test MTP sont générés en tant qu’exécutables qui peuvent être exécutés (ou débogués) directement. Il n’existe aucune console ou commande supplémentaire exécutant des tests. L’application se termine par un code de sortie différent de zéro s’il existe une erreur, qui est typique pour la plupart des exécutables. Pour plus d’informations sur les codes de sortie connus, consultez les codes de sortie MTP.

Conseil / Astuce

Vous pouvez ignorer un code de sortie spécifique à l’aide de l’option de ligne de commande --ignore-exit-code.

Vous pouvez également définir des options de ligne de commande qui s’appliquent à un project de test spécifique dans le fichier project à l’aide de la propriété MSBuild TestingPlatformCommandLineArguments. Un cas d’usage courant est destiné aux projets de test qui ont tous les tests ignorés, qui se terminent normalement avec le code de sortie 8 (la session de test a exécuté zéro test). Dans ce scénario, vous pouvez ajouter ce qui suit sous un PropertyGroup dans votre fichier project :

<TestingPlatformCommandLineArguments>$(TestingPlatformCommandLineArguments) --ignore-exit-code 8</TestingPlatformCommandLineArguments>

Important

Par défaut, MTP collecte les données de télémétrie. Pour plus d’informations et d’options sur la désactivation, consultez la télémétrie MTP.

Note

Disponible dans MTP à compter de la version 2.3.0.

Pour un arrêt approprié, appuyez une fois sur Ctrl+C pour demander l’annulation. L’exécution des tests peut finaliser la phase de nettoyage. Pour terminer immédiatement, appuyez de nouveau sur Ctrl+C .

La publication du project de test à l’aide de dotnet publish et l’exécution directe de l’application est un autre moyen d’exécuter vos tests. Par exemple, l’exécution du ./Contoso.MyTests.exe. Dans certains scénarios, il est également viable d’utiliser dotnet build pour produire l’exécutable, mais il peut y avoir des cas de périphérie à prendre en compte, comme AOT natif.

Utilisez dotnet run.

La commande dotnet run peut être utilisée pour générer et exécuter votre project de test. C’est le plus simple, bien que parfois lent, moyen d’exécuter vos tests. L'utilisation de dotnet run est pratique lorsque vous modifiez et exécutez des tests localement, car cela garantit que le project de test est reconstruit lorsque nécessaire. dotnet run trouve également automatiquement le projet dans le répertoire actuel.

dotnet run --project Contoso.MyTests

Pour plus d’informations sur dotnet run, consultez dotnet run.

Utilisez dotnet exec.

La commande dotnet exec ou dotnet est utilisée pour exécuter (ou exécuter) un project de test déjà généré, il s’agit d’une alternative à l’exécution directe de l’application. dotnet exec nécessite le chemin d'accès vers la dll du projet de test généré.

dotnet exec Contoso.MyTests.dll

ou

dotnet Contoso.MyTests.dll

Note

Fournir le chemin d’accès au fichier exécutable du projet de test (*.exe) entraîne une erreur :

Error:
  An assembly specified in the application dependencies manifest
  (Contoso.MyTests.deps.json) has already been found but with a different
  file extension:
    package: 'Contoso.MyTests', version: '1.0.0'
    path: 'Contoso.MyTests.dll'
    previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net10.0\Contoso.MyTests.exe'

Pour plus d’informations sur dotnet exec, consultez dotnet exec.

Utilisez dotnet test.

À partir du SDK .NET 10, dotnet test dispose d’un mode MTP dédié. Sélectionnez MTP via global.json, ou utilisez la DOTNET_TEST_RUNNER variable d’environnement avec .NET 11 Preview 6 ou version ultérieure. Le mode dédié prend en charge les projets, les solutions, les modules de test générés et les types d’entrée supplémentaires dans les versions plus récentes du SDK.

dotnet test --test-modules Contoso.MyTests.dll

Pour en savoir plus sur la sélection de l’exécuteur de tests et la migration depuis le mode compatible avec VSTest, consultez Tester avec dotnet test.

Voir aussi