我有一组正常工作的硒/mbunit测试,但是我发现的一个问题往往需要一段时间才能运行(超过4个小时),即在跑步时似乎大约有20个测试似乎超时了。我已经确认硒网格在起作用,硒RC都很好,似乎是系统的Qwerk。真正令人讨厌的是,如果我再次进行这些测试,它们通常会通过。

我想知道的是,如果我发现捕获的异常类型,我是否有一种方法可以自动重新运行测试(可能在代码中)...

我试图在捕获语句中加上几行代码,但我知道这是一种重新运行测试的非常刺耳的方法。这是代码:

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

有什么建议么?

有帮助吗?

解决方案

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

[TestFixture, Timeout(3600)] // Use 1 hour instead.
public class MyTestFixture
{
    // ...
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top