Visual Studio单元测试在TFS Build上运行较慢

ssh*_*shm 15 c# tfs unit-testing microsoft-fakes visual-studio-2013

我的项目有1000多个单元测试,在本地机器上,所有测试都在不到10秒的时间内完成.但是当他们在TFS Build上运行时,某些测试的运行速度明显慢于其他测试.其中3个在大约1-2分钟内运行,其他4个在5-30秒内运行,其他的则在几分之一秒内运行.我注意到所有那些较慢的测试都使用来自Microsoft Fakes的假货,而且每一个都是第一个在它的类中运行的.但是很多其他测试也使用假货(一些更密集)并且定期运行.我想知道可能导致这种减速的原因以及如何解决这个问题.

编辑:我注意到,在无模拟测试之后,每个较慢的测试都会运行.也许这种减速是由ShimsContext的初始化引起的.在我的测试类中,ShimsContext是在TestInitialize和TestCleanup方法上创建和处理的.这会对性能产生重大影响吗?

jo_*_*era 0

请参阅以下链接: https://softwareengineering.stackexchange.com/questions/184834/how-do-we-make-unit-tests-run-fast

http://arlobelshee.com/the-no-mocks-book/

这些链接表明,快速进行测试可能很困难。解耦是关键。模拟/伪造是可以的,但是可以通过重构来做得更好,使模拟/伪造变得不必要。

  • 微软开发者社区指出了单元测试的缓慢。对于他们来说,即使具有更好的机器配置,单元测试在 TFS Build 上运行也非常慢。请参阅以下链接:https://developercommunity.visualstudio.com/content/idea/351207/starting-then-running-all-unit-tests-in-a-solution.html (2认同)