Comment : forcer l'arrêt des tests après l'expiration d'un certain délai.
Vous pouvez définir des limites de temps qui seront respectées par l'exécution d'un test ou d'une série de tests.Cela peut s'avérer nécessaire par exemple si vous travaillez dans un environnement de test et que vous avez besoin d'une série de tests se termine avant une certaine heure de la journée.
Un autre scénario d'utilisation des limites de temps est celui du code non réactif.Si un test rencontre une section de code qui ne répond pas, l'utilisation d'un délai d'expiration de test et d'un délai d'expiration de série de tests permet au test en question de se terminer de sorte que la série de tests puisse continuer avec les tests suivants.
Il existe deux façons de définir des limites de temps :
Setting Time-Out period for All Tests: Définissez des valeurs de délai d'attente dans les paramètres de test pour les tests et séries de tests.Pour plus d'informations sur les paramètres de test, consultez Spécification de paramètres de test pour Visual Studio Tests.
Override the Per-Test Time-Out Value on Individual test: Vous pouvez substituer la valeur du délai d'attente par test en définissant une propriété sur un test donné.Vous ne pouvez pas substituer la valeur du délai d'attente de série de tests.
Vous ne pouvez pas définir de délais d'expiration de test pour des types de tests spécifiques.Les délais d'expiration de test ne s'appliquent pas aux tests manuels, mais les délais d'expiration de série de tests sont toujours appliqués, même pour les séries de tests qui contiennent des tests manuels.
La définition de limites de temps pour les tests et les séries de tests a les effets suivants :
Lorsque la durée d'une série de tests atteint sa valeur de délai d'attente, la série de tests est abandonnée, même si certains tests n'ont pas été exécutés.
Lorsque la durée d'un test individuel atteint sa valeur de délai d'attente, l'exécution de ce test s'arrête et le test porte la mention Dépassement de délai.La série de tests se poursuit avec le test suivant.
Comment les méthodes d'initialisation affectent les délais d'expiration de test
Une série de tests peut inclure une méthode AssemblyInitializeAttribute et une méthode ClassInitializeAttribute.Si ces méthodes sont définies, elles nécessiteront une durée finie pour s'exécuter, puis le premier test de la série de tests commencera.
Le délai employé par les méthodes d'initialisation est ajouté au délai employé par le premier test.Nous pouvons l'exprimer sous la forme d'une formule utilisant ces termes :
Dt = durée totale
Dr = durée pendant laquelle un test s'exécute
I = méthodes d'initialisation pour l'assembly et la classe
Tn = test qui s'exécute à un emplacement aléatoire dans une série de tests
T1 = test qui s'exécute à la première place dans une série de tests
Ce qui suit s'applique pour tous les tests après le premier :
Dt**[Tn] = Dr[Tn]**
Mais veuillez noter le cas suivant :
Dt**[T1] = Dr[T1] + D[I]**
Le premier test qui s'exécute peut se voir affecter une valeur de délai d'attente par test.Dans ce cas, la durée d'initialisation prend en compte la limite de temps imposée sur le premier test et pourrait par conséquent entraîner l'échec de ce test.
[!REMARQUE]
Cette limitation pourrait entraîner uniquement l'échec du premier test.Les tests suivants de la série de tests sont non affectés.
Si votre série de tests inclut des méthodes d'initialisation, vous pouvez contourner cette limitation de la manière suivante : appliquez à chaque test un délai d'expiration supérieur à la somme des durées d'exécution attendues pour la méthode de test et toutes les méthodes d'initialisation.Vous devriez l'appliquer pour chaque test.Compte tenu que le test unitaire ne garantit pas l'ordre dans lequel s'exécutent les tests, vous ne pouvez pas prédire quel test s'exécutera en premier.
Comment les méthodes Cleanup affectent les délais d'attente de série de tests
Une série de tests peut inclure une méthode AssemblyCleanupAttribute et une méthode ClassCleanupAttribute.Une fois ces méthodes exécutées, la série de tests prend fin.
La série de tests peut se voir affecter une valeur de délai d'attente.La durée employée par les méthodes Cleanup est ajoutée à la durée totale employée par la série de tests.En d'autres termes, la durée de nettoyage prend en compte la limite de temps que vous avez imposée sur la série de tests dans son intégralité et pourrait par conséquent entraîner un dépassement de délai de la série de tests.
Configurer des délais d'attente pour tous les tests
Pour définir le délai d'attente de série de tests pour tous les tests à l'aide du fichier de paramètres de tests
Ouvrez l' Explorateur de solutions.
Dans le dossier Éléments de solution de votre solution, double-cliquez sur le fichier de paramètres de test.
La boîte de dialogue Paramètres de configuration apparaît.
Choisissez Délais d'attente des tests.
Sélectionnez Abandonner une série de tests si sa durée d'exécution totale dépasse :
Définissez la valeur de délai d'attente de série de tests, en heures, minutes et secondes.
Sélectionnez Sauvegarder puis Fermer.
Pour que ce paramètre soit appliqué, les paramètres de test que vous avez modifiés doivent être actifs.Pour plus d’informations, consultez Comment : sélectionner des paramètres de test actifs à partir de Microsoft Visual Studio.
Remplacez la valeur du délai d'attente par test dans le test individuel
Pour définir le délai d'attente par test à l'aide d'un attribut de test unitaire
Ouvrez le fichier de code source d'un test unitaire.
Recherchez l'attribut TestMethod du test.
Ajoutez l'attribut Timeout et un paramètre qui exprime la valeur du délai d'attente.
La valeur du délai d'attente est exprimée en millisecondes.
Exemple (Visual C#) :
[TestMethod(), Timeout(80)] public void MyTestMethod() { // test code }
Exemple (Microsoft Visual Basic) :
<TestMethod(), Timeout(80)> _ Public Sub MyTestMethod() ' test code End Sub
Pour ce test uniquement, la valeur que vous définissez substitue la valeur du délai d'attente par test configurée dans les paramètres de test.La valeur du délai d'attente de série de tests n'est pas affectée.
Voir aussi
Tâches
Comment : sélectionner des paramètres de test actifs à partir de Microsoft Visual Studio