【问题标题】:How to profile unit tests in Visual Studio 2012?如何在 Visual Studio 2012 中分析单元测试?
【发布时间】:2012-08-15 04:57:01
【问题描述】:

是否可以在 Visual Studio 2012 Ultimate分析 MSTest 单元测试而不使用任何外部分析工具?

【问题讨论】:

  • 我尝试手动启动 VSTest.console.exe 并将测试程序集添加为参数,但似乎无法使其工作。不确定问题出在哪里,但我会尝试其他一些方法,看看是否无法正常工作。
  • 这在 2010 年的 IDE 中很容易做到。他们为什么要删除这个功能?
  • @alexey 有什么消息吗?

标签: unit-testing profiling visual-studio-2012


【解决方案1】:

在 Visual Studio 2015 中,按照 Cyber​​maxs 提供的说明进行操作,但选择 TE.ProcessHost.Managed。不幸的是,其中似乎有两个,因此您必须选择 CPU 使用率较高的一个。

【讨论】:

    【解决方案2】:

    此功能已在即将发布的 Visual Studio 2012 季度更新 1 中重新添加。在测试资源管理器中右键单击要分析的测试,然后从上下文菜单中选择“分析测试”。

    【讨论】:

    • 它可以工作,但我注意到默认情况下它不显示 .vsp 文件。您可以从解决方案文件夹的 TestResults 目录中打开该功能生成的 .vsp 文件。
    • 我们为更新 2 修复了一个错误,如果您有多个符号搜索路径,就会发生这种情况。您能否尝试下一个 CTP,如果您仍然发现问题,请告诉我?
    • 我有更新 2,但它对我来说不见了。我正在使用 XUnit,测试出现在资源管理器中,但没有配置文件按钮
    • 菜单项“Profile”不适用于我们的 NUnit 测试 :(
    • 当此菜单项被禁用时,请参阅此处了解如何启用:hjerpbakk.com/blog/2013/7/11/…
    【解决方案3】:

    在 Visual Studio 中,这是一个非常强大的功能! 像你一样,我在 VS2012 中找不到它(在 MSDN 或博客中没有引用,...)

    现在,我找到的用于分析单元测试的唯一解决方案是将 Profiler 附加到名为 vstest.executionengine.x86.exe 的进程(对我来说是 x86,但对于 64 位可能会有所不同)

    您可以在“性能资源管理器”选项卡中右键单击后执行此操作。

    分析器启动后,您可以根据需要运行任意数量的测试。然后停止分析,您将看到此会话的所有详细信息。

    这种技术有两个注意事项:

    • 由于某些原因,列表中缺少该进程。也许它在空闲时停止。只需开始一项测试即可。
    • 您必须为每个会话附加探查器。我还没有找到编写脚本的方法。

    希望这会对你有所帮助。

    【讨论】:

    • 如果您需要分析一整套测试而不是单个测试,则可以使用这种方法 - 似乎接受的答案一次只能分析一个测试。
    • 我从测试资源管理器开始我的测试,然后附加,但需要几秒钟才能点击屏幕进行附加。在单元测试运行您感兴趣的代码之前,有没有比浏览所有菜单更好的方法来快速附加?
    • 遇到与@An​​dyClaw 相同的问题。我正在做的解决方法是:在测试代码的开头插入一个volatile bool loop = true 和一个while (loop); 并在循环中设置断点。设置性能资源管理器。在调试下启动测试,以便断点命中。然后你就可以启动profiler,最后把locals中的loop改成false来测量你的实际代码。
    • 在 Visual Studio 2015 社区中,您需要选择的是TE.ProcessHost.Managed。不幸的是,其中似乎有两个,因此您必须选择 CPU 使用率较高的一个。 (见图。)
    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多