Question

J'ai un ensemble de Sélénium / MbUnit tests qui fonctionnent bien, mais ils ont tendance à prendre un certain temps pour courir (plus de 4 heures) Un problème que je me rends compte est que d'environ 1 à 20 essai semble délai d'attente lors de l'exécution. Je confirme la Sélénium GRID fonctionne et les années Selenium RC sont tous très bien, il semble juste être un qwerk du système. Ce qui est vraiment gênant si est que si je lance à nouveau ces tests, ils passeront habituellement.

Ce que je veux savoir est s'il y a un moyen pour moi d'auto exécutez à nouveau des tests (probablement dans le code) si un type perticular d'exception est pris ...

J'ai essayé de mettre quelques lignes de code dans l'instruction catch mais je sais que c'est une façon très hacky de re l'exécution des tests. Voici le code:

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

Toutes les suggestions?

Était-ce utile?

La solution

Il est probablement pas une vraie réponse à votre question, mais étant donné que le problème est lié à un problème de délai d'attente se produisant lors de l'exécution des tests, avez-vous essayé de changer la valeur de délai par défaut (de 10 minutes, je crois) en utilisant TimeoutAttribute ?

[TestFixture, Timeout(3600)] // Use 1 hour instead.
public class MyTestFixture
{
    // ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top