如何在VS2017中对单元测试进行分析?

18

VS2017有分析应用程序的功能,是否也有分析单元测试的能力?

3个回答

12
根据来自@Wizou的另一个答案,对我来说,在VS2019专业版中缺少了对单元测试进行性能分析的选项。
相反,我做的是:
1.首先打开一个命令行窗口,并导航到单元测试dll的生成输出目录 2.运行vstest.console.exe,告诉它要加载和运行的特定dll和测试,例如vstest.console.exe MyProject.Test.dll /Tests:TestFooBar,并检查它是否有效 3.现在从VS2019分析器中执行同样的操作: 4.选择“可执行文件”目标,并找到vstest.console.exe(提示:我的在C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe) 5.像上面那样使用命令行选项 6.工作目录是您的单元测试DLL所在的位置 7.启动分析会话,享受结果。
注意:您可能会发现大部分时间都被测试框架加载、静态构造函数、反射和JIT编译等占用,并且有太多杂音无法确定实际测试中哪些部分较慢。为帮助解决问题,这个“脏技巧”非常有效:
[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
    }
}



9

有的。右键点击单元测试,选择“Profile Test”。

但是这仅在企业版和专业版中可用。


谢谢habakuk。我正在使用社区版,所以它不可用。 - Iain Macnab
3
似乎这仅适用于MSTest,而不是NUnit、XUnit?! - Falco Alexander
@FalcoAlexander,这也适用于xUnit(我还没有测试过NUnit),只需确保你正确引用了xunit.runner.visualstudio包(除了xunit包外,可能还需要coverlet.collector包?)。 - Dai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接