在VS2015中运行C#单元测试时会有很长的延迟

时间:2016-01-31 14:53:08

标签: unit-testing visual-studio-2015

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

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

1 个答案:

答案 0 :(得分:4)

nothing 发生的时间相当长。在运行任何测试之前必须进行许多启动处理(例如,需要加载所有程序集及其依赖项)。如果您在套件中运行单个测试或运行所有测试,则此命中通常是相同的。

如果您查看"测试"在输出窗口中,您可以更好地了解实际运行的内容以及运行测试所需的实际时间。例如,在我的情况下,运行一个测试显示了运行49个测试的类似开销。

  

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

     

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

有很多东西可以减慢程序集加载速度,例如静态构造函数。我倾向于首先创建一个没有依赖关系的新测试项目来验证它没有表现出相同的长延迟问题,这样你才能知道它不仅仅是你的机器。然后我添加你现有测试项目的依赖项,一次一个依赖项,看看添加一个特定的依赖项是否会触发延迟...然后我会看看那个项目,看看是否有什么东西继续,例如尝试连接到数据库的静态构造函数/建立网络连接。

也许值得尝试调试你的测试,但要确保你在打开异常时打开了Break(如果它类似于失败的数据库连接导致速度减慢)作为该过程的一部分,很可能会抛出异常。)