最近,我开始面对我的项目中包含大约650单元测试的一个问题。
当我一次运行所有这些测试时,单元测试运行结束时的一些测试开始失败,出现System.OutOfMemoryException
。
当我再次运行失败的测试时,它们会通过。
分析:
我看了看任务管理器运行我的测试,同时要看到,vstest.executionengine.x86.exe
一直增加,直到达到1330 MB的内存。然后,由于内存不足异常,测试开始失败。
当然可以肯定的是,我的一些类可能会有内存泄漏,但我测试的类中有90%没有可能导致内存泄漏的代码。
我的许多测试类的没有任何TestInitialize
或TestCleanup
方法,因为我的课的创建直接完成TestMethod
测试内部,因为在测试这些类没有实现IDiposable
(因为没有代码,可以导致泄漏)。
问题:
现在我不知道我可能是做错了。但是我想知道即使在测试类的所有测试都运行之后,测试对象仍然保留在内存中吗?
有没有人遇到过这个问题,或者可以指点我应该/可以做些什么来修复或找到问题?
谢谢!