如何使用mstest增加单元测试运行的全局超时

本文关键字:全局 超时 测试运行 单元 何使用 mstest 增加 | 更新日期: 2023-09-27 18:12:24

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

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

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

我们已经尝试使用不同的testunconfig文件设置:

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

但没有效果。

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

vstesthost.exe: AgentObject: Cleanup被调用,超时时间为30000

任何人都可以给我们一个关于如何传递一个参数给vstesthost.exe告诉超时我们想要的测试运行的线索?

如何使用mstest增加单元测试运行的全局超时

在VS2017中,VSTesthost是可配置的

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

设置运行测试的超时15分钟(900秒,以毫秒计)

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

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