如何在 VS2017 中分析单元测试

How can you profile unit tests in VS2017

VS2017 具有分析应用程序的能力。还有分析单元测试的能力吗?

是的。右键单击单元测试并选择 "Profile Test"。

但这只适用于企业版和专业版。

我是VS专业版,也打不开

可能需要VS企业版。

另请参阅 https://social.msdn.microsoft.com/Forums/en-US/49513731-23e6-4b65-acce-ed0a98e19b59/no-profile-test-option-in-context-menu-on-test-explorer-in-visual-studio-professional-2013?forum=vsunittesthttps://visualstudio.microsoft.com/vs/compare/

根据 的其他回答,我在 VS2019 专业版中缺少分析单元测试的选项。

相反,我所做的是:

  • 首先打开命令行 window,然后导航到单元测试 dll 的构建输出到的目录
  • 运行 vstest.console.exe 告诉它要加载和测试的特定 dll 运行,例如vstest.console.exe MyProject.Test.dll /Tests:TestFooBar,并检查它是否有效
  • 现在,在 VS2019 分析器中执行相同的操作:
  • 选择“可执行文件”的目标并找到 vstest.console.exe(提示:我的是 C:\Program Files (x86)\Microsoft Visual Studio19\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
  • 命令行选项如上
  • 单元测试 DLL 所在的工作目录
  • 启动分析会话,享受结果。

注意:您可能会发现大部分时间都被测试框架加载、静态构造函数、反射和 JITing 事情所支配,并且有太多噪音无法确定您的实际测试的哪些部分很慢。为了帮助,这个卑鄙的把戏非常有效:

[TestMethod]
public void TestFooBar()
{
    for (int i = 0; i < 10000; i++) // extra iterations for profiling. Vary this number if 10k is too small
    {
        // your normal unit test which you'd only run once goes here
    }
}