【问题标题】:How to increase global timeout of unit test run whith mstest如何使用 mstest 增加单元测试运行的全局超时
【发布时间】:2014-07-10 13:36:01
【问题描述】:

我们有大量的单元测试,由于 Visual Studio 2008 的性能问题,我们通常使用 MsTest 从命令行运行测试。

当我们想要调试测试时,我们将 Visual Studio 附加到 VSTestHost 进程或从带有Debugger.Break() 的代码中调用调试器。问题在于,以这种方式调试单元测试时,测试会在五分钟后因超时而退出。我们在运行单元测试的时候有这个超时是可以的,但是在调试的时候我们发现它很烦人,因为我们在五分钟后就不能继续了。

我们不想使用 Timeout 属性,因为我们只需要在调试单元测试时增加超时。

我们尝试使用不同的 testrunco​​nfig 文件设置:

<Timeouts runTimeout="2147483647" testTimeout="2147483647" />

但没有效果。

我们为 vstesthost.exe 启用了日志记录,我们在跟踪文件中发现以下几行:

vstesthost.exe:AgentObject:清理调用超时 30000

谁能告诉我们如何将参数传递给 vstesthost.exe,告诉我们测试运行所需的超时时间?

【问题讨论】:

  • 我不确定这个链接是否有帮助,但是这篇文章讨论了设置超时msdn.microsoft.com/en-us/library/vstudio/ee256991.aspx
  • @TGH 我已经查看了您建议的链接,但不幸的是它仅适用于从 2010 年开始的 Visual Studio 版本,我们仍在使用 Visual Studio 2008

标签: c# unit-testing debugging mstest


【解决方案1】:

在 VS2017 中,VSTesthost 是可配置的

vstest.console.exe MyTestAssembly.dll -- RunConfiguration.TestSessionTimeout=900000

设置运行测试的超时时间为 15 分钟(900 秒,以毫秒为单位)

您可能还需要通过 TimeOutAttribute 为特定测试设置超时(可以是无限的)。

【讨论】:

    【解决方案2】:

    在跟踪文件中搜索超时消息后,我们发现了这个问题 (Cannot debug inside of ClassCleanup (timeout?)),其中一位 MSFT 员工回答说 Visual Studio 2008 中的测试代理的超时是不可配置的。所以看来唯一的办法就是更新我们的IDE。

    【讨论】:

      猜你喜欢
      • 2011-04-24
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 2011-12-25
      • 2018-11-28
      • 1970-01-01
      • 2013-02-05
      相关资源
      最近更新 更多