我正在通过NUnit VS适配器在Visual Studio 2015中使用测试资源管理器来运行我的单元测试。
使用Test Explorer的“全部运行”命令时,我的测试会在一秒钟内运行并显示通过/失败,但总运行时间为34秒。
选择所有测试并从右键单击上下文菜单中使用“运行选定的测试”时,相同的测试总共需要1秒钟的运行时间。
对于为什么使用“全部运行”需要花费更长的时间,我尚未找到任何线索。
最佳答案
让我们看一下输出窗口。如果我选择“全部运行”,则输出窗口如下所示
------ Discover test started ------
========== Discover test finished: 92 found (0:00:00.4993709) ==========
------ Run test started ------
========== Run test finished: 92 run (0:00:04.157636) ==========
如果我改为选择所有测试,则要测试输出窗口如下所示
------ Run test started ------
========== Run test finished: 92 run (0:00:03.7262618) ==========
关键是,当您选择“全部运行”时,测试浏览器必须遍历所有代码,并使用“TestClass”属性及其所有用“TestMethod”属性修饰的方法重新查找所有类(这是通过反射来完成的)在某些情况下可能会有些“缓慢”)。为什么?以便测试浏览器可以找到所有新的和现有的测试方法。
当您手动选择要测试的方法时,测试浏览器不必重新查找所有现有的和新的方法即可进行测试,因此速度更快。
这只是“总运行时间”的含义的一个猜测,我从未使用过NUnit,并且这些想法很久以后才可以在评论中发布。
关于unit-testing - 在VS 2015测试资源管理器中使用 'Run All'时,为什么NUnit测试时间变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488445/