我在Visual Studio 2015中通过NUnit VS Adapter使用Test Explorer来运行我的单元测试。
当使用Test Explorer的'Run All'命令时,我的测试运行并在一秒钟内显示通过/失败,但总运行时间为34秒。
当选择所有测试并使用右键单击上下文菜单中的“运行选定的测试”时,相同的测试需要1秒的总运行时间。
我还没有找到任何关于为什么用“全部运行”需要这么长时间的线索。
答案 0 :(得分:2)
让我们看一下输出窗口。如果我采取"全部运行"输出窗口看起来像这样
------发现测试开始------
==========发现测试结束:找到92(0:00:00.4993709)==========
------运行测试开始------
==========运行测试完成:92运行(0:00:04.157636)==========
如果我改为选择我要测试的所有测试,输出窗口就像这样
------运行测试开始------
==========运行测试完成:92运行(0:00:03.7262618)==========
关键是当你采取"全部运行"测试资源管理器必须通过所有代码并使用" TestClass"重新查找所有类。属性及其所有方法都用" TestMethod"属性(这是通过反射完成的,在某些情况下可能有点"慢")。为什么?这样测试资源管理器就可以找到所有新的和现有的测试方法。
当您手动选择要测试的方法时,测试资源管理器不必重新查找要测试的所有现有方法和新方法,因此速度更快。
这有点猜测"总运行时间"意思是,我从来没有使用过NUnit,而且这些想法很长时间才会发表评论。