如何增加Visual Studio测试的超时?

时间:2012-07-18 00:19:48

标签: unit-testing visual-studio-2012

我正在为我正在撰写的一些代码(在Visual Studio 2012中)开发一套相当大的测试。在大多数情况下,运行单元测试并不是什么大问题。但我还包括许多具有更多外部基础架构依赖性的集成测试。测试次数与重新设置测试之间的基础架构依赖性相结合,导致整个套件的测试运行时间相当长(目前大约45分钟)。

运行测试没什么大不了的。单元测试将在每晚办理登机手续,集成测试时运行。但是,在尝试分析所有测试的代码覆盖率时,我遇到了一个问题。未创建代码覆盖率结果,输出窗口显示以下内容:

  

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

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

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:3)

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

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

不幸的是,当使用.testsettings文件尝试将其设置为高于30分钟时,即使.testsettings文件定义了更高的超时,我也无法使此属性生效。低于30分钟的值被兑现,但无论测试设置如何,更高的值仍将在30分钟停止。

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

如果您无法使超时属性生效,请尝试删除.testsettings。