如何在 VS2017 中分析单元测试
Posted
技术标签:
【中文标题】如何在 VS2017 中分析单元测试【英文标题】:How can you profile unit tests in VS2017 【发布时间】:2017-11-12 12:11:52 【问题描述】:VS2017 具有分析应用程序的能力。是否也可以分析单元测试?
【问题讨论】:
【参考方案1】:我在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=vsunittest 和https://visualstudio.microsoft.com/vs/compare/
【讨论】:
【参考方案2】:是的,有。右键单击单元测试并选择“配置文件测试”。
但这仅在企业版和专业版中可用。
【讨论】:
谢谢哈巴库克。我正在使用社区,这就是它不可用的原因 这似乎只适用于 MSTest,不适用于 NUnit、XUnit?!【参考方案3】:根据 @Wizou 的其他回答,我在 VS2019 专业版中缺少分析单元测试的选项。
相反,我所做的是:
首先打开一个命令行窗口,然后导航到单元测试 dll 的构建输出所在的目录 运行vstest.console.exe
告诉它要加载和测试运行的特定dll,例如vstest.console.exe MyProject.Test.dll /Tests:TestFooBar
,并检查它是否有效
现在,在 VS2019 分析器中执行相同的操作:
选择“可执行文件”的目标并找到 vstest.console.exe(提示:我的是 C:\Program Files (x86)\Microsoft Visual Studio\2019\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
【讨论】:
以上是关于如何在 VS2017 中分析单元测试的主要内容,如果未能解决你的问题,请参考以下文章