Автоматическое повторное выполнение тестов, которые не пройдены - PullRequest
1 голос
/ 04 июня 2010

У меня есть набор тестов Selenium / MbUnit, которые работают нормально, но, как правило, для их запуска требуется больше времени (более 4 часов). Проблема, которую я нахожу, заключается в том, что при выполнении теста 1 из 20 время ожидания истекает. Я подтвердил, что Selenium GRID работает, и с Selenium RC все в порядке, кажется, что это всего лишь вопрос системы. Что на самом деле раздражает, так это то, что если я снова запускаю эти тесты, они, как правило, проходят.

Что я хочу знать, так это то, есть ли способ автоматически перезапускать тесты (возможно, в коде), если обнаруживается исключение перикулярного типа ...

Я попытался вставить несколько строк кода в оператор catch, но я знаю, что это очень хакерский способ запуска тестов. Вот код:

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

Есть предложения?

1 Ответ

1 голос
/ 05 июня 2010

Вероятно, это не реальный ответ на ваш вопрос, но поскольку проблема связана с проблемой тайм-аута, возникающей во время выполнения тестов, вы пытались изменить значение тайм-аута по умолчанию (я полагаю, 10 минут) с помощью TimeoutAttribute * * 1004

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