我的项目有1000多个单元测试,在本地机器上,所有测试都在10秒内运行完成。但是当它们在TFS Build上运行时,有些测试运行速度比其他测试明显要慢。其中3个测试需要大约1-2分钟才能完成,另外4个需要5-30秒,其余的则只需要几分之一秒。我注意到所有这些较慢的测试都使用了 Microsoft Fakes 中的假对象,并且每个较慢的测试都是其类中第一个运行的测试。但是很多其他的测试也使用了假对象(有些使用得更频繁),并以正常速度运行。我想知道可能导致这种减速的原因是什么,以及如何解决它。
编辑:我注意到每个较慢的测试都在一个不使用模拟对象的测试后运行。也许这种减速是由 ShimsContext 的初始化引起的。在我的测试类中,ShimsContext 是在 TestInitialize 和 TestCleanup 方法中创建和释放的。这样做对性能有显著影响吗?