2016-01-31 45 views
13

在VS2015中运行单元测试时,我有很长的延迟(大约1分钟!甚至更多)。当运行一次测试时,我会看到“测试资源管理器”顶部的进度条,它会持续大约一分钟,然后获得测试结果。报告的测试运行时间与预期的一样 - 非常小,几毫秒。在VS2015中运行C#单元测试时有很长的延迟

我的问题是 - 我该如何调试?在测试实际开始运行之前,如何在这一分钟里看到发生了什么?

+0

您不清楚您是否真的正在调试测试,并且一分钟后您的第一个断点或您只在运行测试。在第二种情况下进行调试时,您需要断点和调试运行测试;) – vinjenzo

+0

您是否正在运行通用Windows应用程序单元测试? –

+2

我在随机基础上遇到类似的问题。这似乎是一个错误。大多数情况下,测试运行速度非常快(以毫秒为单位),但每过一段时间,它似乎都会挂起一些东西。如果我正在运行1次测试或50次,则无关紧要。只需一个很大的停顿,有时候等待测试运行开始的几分钟。然后一旦测试开始运行,它们很快。通常重新启动Visual Studio将清除它...一段时间。很烦人。仍然发生在更新2中。 –

回答

2

一分钟相当长的时间什么也没有将发生。在运行任何测试之前,有很多启动处理必须发生(例如,需要加载所有程序集及其依赖关系)。如果您正在运行单个测试或运行套件中的所有测试,则此命中大致相同。

如果您查看“Tests”输出窗口,您将会更好地了解实际发生的情况以及运行测试所花费的实际时间。例如在我的,运行一个测试示出了类似的开销来运行49个测试..

==========运行测试完成:1个运行(0:00:01.0416253)=== =======

==========运行测试完成:49运行(0:00:01.9156121)==========

有很多东西可以减慢程序集加载,比如静态构造函数。我倾向于通过创建一个没有依赖关系的新测试项目来验证它不会出现相同的长延迟问题,以便您知道它不仅仅是您的机器。然后,我会添加现有测试项目的依赖项,每次只添加一个依赖项,以查看是否添加特定的依赖项会触发延迟...然后,我会查看该项目以查看是否有任何事情发生,如静态尝试连接到数据库/建立网络连接的构造函数。

它也可能是值得尝试调试你的测试,但确保你有断开当异常被抛出打开(如果它是像失败的数据库连接,导致减速有一个很好的机会作为该过程的一部分可能会引发异常)。

相关问题