首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DotMemory错误(将快照与自身进行比较)

DotMemory错误(将快照与自身进行比较)
EN

Stack Overflow用户
提问于 2018-08-03 12:45:04
回答 1查看 115关注 0票数 0

试图在我的自动化测试中使用以下方法执行内存泄漏检查

  • nUnit 3.8.1
  • TestStack.White 0.13.3
  • dotMemory 3.0.20171219.105559

使用下面的控制台命令启动我的测试,如概述的这里

dotMemoryUnit.exe“E:\nunit3 3-控制台”-- "C:\Dev\White\bin\Debug\Automation.dll“

下面的测试(主要是psuedocode)启动应用程序,抓取快照,导航到各个子页面,返回到基本页面,然后再获取另一个快照,这样我就可以对幸存的对象进行比较。快照比较使用概述的这里方法进行。

代码语言:javascript
运行
复制
private const MemoryCheckPoint snapshot1

[ OneTimeSetUp ]
public void SetUp()
{
    // launch application, hook up with teststack.white
    LaunchApplication();
}

[ Test, Order(1) ]
public void GetSnapshot()
{
    snapshot1 = dotMemory.Check();
}

[ Test, Order(2) ]
public void DoStuff()
{
    //Many tests like this that test navigation from this page
    //making sure controls work and values are returned as expected
}

[ Test, Order (3) ]
public void CheckMemory()
{
    dotMemory.Check(memory =>
    {
        // Compare two checkpoints
        Assert.That(memory.GetDifference(snapshot1).GetSurvivedObjects
            (where => where.Type.Is<string>()).ObjectsCount, Is.EqualTo(0));
    });
}

[ OneTimeTearDown ]
public void CloseWindow()
{
    Application.Close();
}

这样做的想法是,如果有任何UI元素由于事件等原因没有得到处理,这应该会将它们作为幸存的对象来获取,然后我可以在稍后手动重复测试,以跟踪问题的来源。

然而,当我使用dotmemoryunit.exe控制台运行测试时,我会得到以下错误。

错误: White.Tests.MemoryCheck.System.ArguementException :您正在尝试将快照与JetBrains.dotMemoryUnit.Kernel.dotMemory.Api.GetDifference<快照snapshot1、快照snapshot2>上的快照进行比较。

考虑到它们绝对是不同的快照,我不知道为什么会失败。

我使用控制台运行程序的原因是,由于某种原因,当我尝试使用resharper测试运行程序运行自动化测试时,它们不会运行,它只是返回不确定的结果:测试不运行

EN

回答 1

Stack Overflow用户

发布于 2018-08-03 13:06:52

默认情况下,dotMemory单元在“测试”的上下文中工作,您可以这样想:在测试方法的最开始,有一个调用DotMemoryUnitController.TestStart,在最后一个DotMemoryUnitController.TestEnd。所有数据仅在一个“测试”中有效。

您可以通过指定--no-instrumentation命令行参数并手动调用DotMemoryUnitController.TestStartDotMemoryUnitController.TestEnd如何描述在本文中来关闭此行为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51672982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档