我有一套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);
}
}
有什么建议吗?
答案 0 :(得分:1)
这可能不是您问题的真实答案,但由于问题与运行测试时发生的超时问题有关,您是否尝试使用{{3更改默认超时值(我相信10分钟) }}?
[TestFixture, Timeout(3600)] // Use 1 hour instead.
public class MyTestFixture
{
// ...
}