自动重新运行失败的测试

时间:2010-06-04 14:15:10

标签: c# selenium mbunit

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

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

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

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