【问题标题】:How Can I Increase the Timeout for Visual Studio Tests?如何增加 Visual Studio 测试的超时时间?
【发布时间】:2012-07-18 00:19:47
【问题描述】:

我正在为我正在编写的一些代码(在 Visual Studio 2012 中)进行一套相当大的测试。在大多数情况下,运行单元测试没什么大不了的。但我也包括了许多具有更多外部基础设施依赖项的集成测试。测试的数量,加上重新设置测试之间的基础设施依赖关系,导致整个套件的测试运行相当长(目前大约 45 分钟)。

运行测试没什么大不了的。单元测试将在签入时运行,每晚进行集成测试。但是,在尝试分析所有测试的代码覆盖率时,我遇到了一个问题。没有创建代码覆盖结果,输出窗口显示如下:

发送到 net.pipe://megara/vstest.discoveryengine/14108 的此请求操作未在配置的超时 (00:30:00) 内收到回复。分配给此操作的时间可能是较长超时的一部分。这可能是因为服务仍在处理操作,或者因为服务无法发送回复消息。请考虑增加操作超时(通过将通道/代理转换为 IContextChannel 并设置 OperationTimeout 属性)并确保服务能够连接到客户端。

我不确定它会把我引到这里。我没有使用任何iContextChannel,所有的测试运行都内置在 Visual Studio 中。所以我真的不知道在哪里/如何增加任何类型的超时。有人知道我应该去哪里看吗?

【问题讨论】:

  • 您是否在某处使用命名管道?看起来是超时了。
  • @PaulPhillips:没有明确表示。无论发生什么,都是 Visual Studio 测试运行器中的所有内置功能。

标签: unit-testing visual-studio-2012


【解决方案1】:

尝试更改解决方案 .testsettings 文件中的超时值。

如果您没有,可以使用right-click on solution -> Add New Item -> TestSettings 菜单将其添加到解决方案中。在那里,您可以对单个测试进行超时(默认为 30 分钟),或为整个测试运行设置超时。

尚不清楚这是否是根本原因,但值得排除。

【讨论】:

  • 这让我解决了这个特殊问题,谢谢!尽管 Visual Studio 仍然看起来有点……不可靠……有这么多测试运行了这么长时间。希望产品发布会更加稳定:)
【解决方案2】:

老话题,但也许有一些新信息:我没有任何运气尝试使用 Visual Studio 2015 在 .testsettings 文件中设置超时。无论我在测试设置中将其设置为什么,我的测试都会在之后停止30分钟。

现在有一个[Timeout(milliseconds)] 属性可以应用于各个测试方法。这甚至比测试设置更好,因为您可以微调各个测试以确保它们不会花费比预期更长的时间。

不幸的是,在使用 .testsettings 文件时尝试将其设置为高于 30 分钟时,即使 .testsettings 文件定义了更高的超时时间,我也无法让该属性产生任何影响。低于 30 分钟的值被接受,但更高的值仍然会在 30 分钟处停止,无论测试设置说什么。

删除 .testsettings 文件后,超时属性似乎按预期工作 - 测试将运行到我设置的任何超时。

如果您无法让 timeout 属性正常工作,请尝试删除 .testsettings。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 2013-04-04
    • 1970-01-01
    • 2015-03-12
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多