gpt4 book ai didi

visual-studio - Visual Studio Community 2015 中的分析测试

转载 作者:行者123 更新时间:2023-12-03 04:21:31 24 4
gpt4 key购买 nike

网络上的帖子建议您可以通过右键单击并选择“配置文件测试”来在 Visual Studio 中配置测试:http://adamprescott.net/2012/12/12/performance-profiling-for-unit-tests/但对于我的 NUnit 测试,我只看到“运行测试”和“调试测试”,对于 xUnit.NET 也是如此。为了分析测试我缺少什么?这只是社区版不支持,还是我缺少一些配置或组件?

(如果社区不支持它,那似乎很奇怪,因为我可以在社区中分析可执行文件,因此可以通过创建运行测试的可执行文件并对其进行分析来痛苦地解决此问题。为什么支持分析可执行文件而不支持分析测试?)

重现 NUnit 的步骤:在 Visual Studio Community 2015 中创建新的 C# 库项目,粘贴 http://nunit.org/index.php?p=quickStartSource&r=2.6.4 的内容到新文件中,安装 NuGet 包如下:

<packages>
<package id="NUnit" version="2.6.4" targetFramework="net452" />
<package id="NUnit.Runners" version="2.6.4" targetFramework="net452" />
<package id="NUnitTestAdapter" version="2.0.0" targetFramework="net452" />
</packages>

甚至重新启动了 Visual Studio。测试显示在测试资源管理器中并且可以运行,但右键单击菜单上没有可用的“配置文件测试”选项。还尝试了 xUnit.net 的等效步骤,但没有任何乐趣。

最佳答案

这表明我今天早些时候能够在 VS Community 2015 中分析 NUnit 测试。

将 NUnit Test Runner 分析为可执行文件

  1. 确保您以管理员身份运行 VS2015。
  2. 从工具栏中单击分析 > 性能分析器...
  3. 选择性能向导并点击开始
  4. 第 1 页:就我而言,我想查看分配情况,因此点击了.NET 内存分配
  5. 第 2 页:选中可执行文件(.EXE 文件)选项并继续。
  6. 第 3 页:在此页面上,您必须定义要运行的可执行文件。

    这将是 NUnit 的测试运行程序 nunit3-console.exe,或者您的测试框架的任何等效项。

    • 可执行文件的完整路径是什么? C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe
    • 命令行参数:bin\Debug\Test.dll --inprocess --test TestNamespace.TestClassName.Test_Method_Name
    • 工作目录:\\MAC\Home\Documents\GitHub\ApplicationName\Test

您需要将这些路径替换为对您的系统有意义的路径。 --inprocess 开关使测试从 NUnit 进程内联运行。如果没有这个开关,就会生成一个子进程,即使分析器看起来可以工作,您也只是分析 nunit3-console.exe,而不是您自己的代码。

  • 第 4 页:单击完成

    请记住,探查器将生成报告文件并将其保存到您的工作目录中。就我而言,由于我的工作目录是 UNC 共享,因此需要我在分析器启动之前选择一个本地文件夹路径来保存报告。

    终端窗口应该短暂出现,其中包含 NUnit 运行程序输出。该窗口会自动关闭,因此如果您看到红色文本闪烁,您将没有时间在错误消失之前阅读该错误。您可以将第 3 页中的命令复制到命令提示符中,以便更轻松地阅读。

  • 命令运行后(无论成功与否),您应该获得一份报告,您可以在其中跟踪测试导致的分配数量。

  • 不幸的是,小测试中的分配可能会被 NUnit.Framework 本身引起的分配所掩盖。我四处点击,看看是否有办法将它们从结果中排除,但没有找到办法,所以我就忽略了它们。

    如果您想分析不同的测试,可以打开性能资源管理器并右键单击nunit3-console.exe > 属性以更改命令行参数和然后单击操作 > 开始分析刷新报告。

    结论

    此解决方案成功分析了单个 NUnit 测试的结果,但该声明带有一些警告。

    这只是比创建一个单独的可执行文件进行分析稍微不那么令人讨厌,而且如果您需要进行一些非常敏感的分析,NUnit 分配出现在报告中可能会使其成为一个不可能的选择。

    也许有更多 VS 2015 经验的人可以帮助我改进这个答案,并提供一些关于如何从报告中排除 NUnit.Framework dll 的提示?

    关于visual-studio - Visual Studio Community 2015 中的分析测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32034375/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com