2010-06-04 5 views
1

J'ai un ensemble de tests Selenium/MbUnit qui fonctionnent bien, mais ont tendance à prendre un peu de temps pour s'exécuter (plus de 4 heures) Un problème que je trouve est que environ 1 test sur 20 semble pour expirer en cours d'exécution. J'ai confirmé que la grille de sélénium fonctionne et que les sélections de sélénium sont parfaites, il semble que ce soit un système du système. Ce qui est vraiment ennuyeux, c'est que si j'exécute ces tests, ils passeront généralement.Redémarrage automatique des tests qui échouent

Ce que je veux savoir est s'il y a un moyen pour moi d'auto ré-exécuter les essais (probablement dans le code) si un type perticular d'exception est pris ...

J'ai essayé de mettre un peu lignes de code dans la déclaration catch mais je sais que c'est une façon très hacky de relancer les tests. Voici le code:

catch (AssertionException e) 
      { 
       if (e.Message() == "TimeOut") //Something similar to this 
       { 
         this.Test(); 
       } 
       else 
       { 
        verificationErrors.AppendLine(browserList[i] + " :: " + e.Message); 
       } 
      } 

Des suggestions?

Répondre

1

Ce n'est probablement pas une vraie réponse à votre question, mais comme le problème est lié à un problème de timeout survenu lors des tests, avez-vous essayé de changer la valeur du délai d'attente par défaut de TimeoutAttribute?

[TestFixture, Timeout(3600)] // Use 1 hour instead. 
public class MyTestFixture 
{ 
    // ... 
} 
Questions connexes