在VS 2015测试资源管理器中使用“全部运行”时,为什么NUnit测试时间会变慢?

时间:2015-11-02 22:47:56

标签: unit-testing nunit visual-studio-2015

我在Visual Studio 2015中通​​过NUnit VS Adapter使用Test Explorer来运行我的单元测试。

当使用Test Explorer的'Run All'命令时,我的测试运行并在一秒钟内显示通过/失败,但总运行时间为34秒。

Test Explorer using 'Run All'

当选择所有测试并使用右键单击上下文菜单中的“运行选定的测试”时,相同的测试需要1秒的总运行时间。

Test Explorer using 'Run Selected Tests'

我还没有找到任何关于为什么用“全部运行”需要这么长时间的线索。

1 个答案:

答案 0 :(得分:2)

让我们看一下输出窗口。如果我采取"全部运行"输出窗口看起来像这样

  

------发现测试开始------
  ==========发现测试结束:找到92(0:00:00.4993709)==========
  ------运行测试开始------
  ==========运行测试完成:92运行(0:00:04.157636)==========

如果我改为选择我要测试的所有测试,输出窗口就像这样

  

------运行测试开始------
  ==========运行测试完成:92运行(0:00:03.7262618)==========

关键是当你采取"全部运行"测试资源管理器必须通过所有代码并使用" TestClass"重新查找所有类。属性及其所有方法都用" TestMethod"属性(这是通过反射完成的,在某些情况下可能有点"慢")。为什么?这样测试资源管理器就可以找到所有新的和现有的测试方法。

当您手动选择要测试的方法时,测试资源管理器不必重新查找要测试的所有现有方法和新方法,因此速度更快。

这有点猜测"总运行时间"意思是,我从来没有使用过NUnit,而且这些想法很长时间才会发表评论。