1

我有一组工作正常的 Selenium/MbUnit 测试,但往往需要一段时间才能运行(超过 4 小时) 我发现的一个问题是大约 20 分之一的测试似乎在运行时超时。我已经确认 Selenium GRID 正在工作并且 Selenium RC 都很好,它似乎只是系统的一个 qwerk。真正令人讨厌的是,如果我再次运行这些测试,它们通常会通过。

我想知道的是,如果捕获到特定类型的异常,我是否有办法自动重新运行测试(可能在代码中)......

我试图在 catch 语句中添加几行代码,但我知道这是重新运行测试的一种非常老套的方法。这是代码:

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

有什么建议么?

4

1 回答 1

1

这可能不是您问题的真正答案,但由于问题与运行测试时发生的超时问题有关,您是否尝试通过使用更改默认超时值(我相信为 10 分钟)TimeoutAttribute

[TestFixture, Timeout(3600)] // Use 1 hour instead.
public class MyTestFixture
{
    // ...
}
于 2010-06-05T12:20:35.257 回答