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

Dav*_*vid 5 unit-testing visual-studio-2012

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

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

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

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

Pau*_*ips 6

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

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

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


Ste*_* CO 5

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

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

不幸的是,在使用 .testsettings 文件时尝试将其设置为 30 分钟以上时,我无法使此属性产生任何影响,即使 .testsettings 文件定义了更高的超时。低于 30 分钟的值得到遵守,但无论测试设置如何,更高的值仍会在 30 分钟处停止。

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

如果您在使超时属性起作用时遇到问题,请尝试删除 .testsettings。