如何使用dotmemoryunit

时间:2017-07-12 16:16:31

标签: unit-testing memory-leaks jetbrains-ide dotmemory

所以我开始使用Jetbrains.DotMemoryUnit nuget包运行内存泄漏测试,但它似乎并没有起作用。

var mcp1 = dotMemory.Check();

// lots of automation testing using TestStack.White

dotMemory.Check( memory =>
    Assert.That( memory.GetDifference( mcp1 )
        .GetSurvivedObjects().GetObjects( where => where.Namespace.Like( "XXX" )  ).ObjectsCount, Is.EqualTo( 0 ) ));

我们所有的内部命名空间都有一个像XXX.UI.ModuleName这样的格式。

然而,在运行测试时,如果发生内存泄漏,它并没有断言,而且我故意投入了几个(并且有几个没有故意)

知道我在哪里出错吗? (我假设它在哪里,如果在任何地方)

只是为了确定我改变了获取快照的方式,以便我使用

dotmemoryapi.GetSnapshot

然后我手动打开了我的两个快照来比较它们,并没有提到我的XXX命名空间。

但是,如果我使用配置文件执行完全相同的内存测试,但手动按下按钮,则有许多带有XXX命名空间的条目。

老实说,我不知道这里发生了什么。

0 个答案:

没有答案