0

所以我已经开始使用 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 的格式。

但是在运行测试时,它并没有断言何时存在内存泄漏,并且我故意放入了几个(并且几个不是故意的)

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


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

dotmemoryapi.GetSnapshot

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

但是,如果我也使用分析执行完全相同的内存测试,但手动按下按钮,则会有很多带有 XXX 命名空间的条目。

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

4

0 回答 0