我在Visual Studio 2017 Professional中有一个C#项目 . 它有一些单元测试:用 [Test]
声明的方法在编辑器中显示一个小绿色勾号图标,我可以右键单击并测试'Run'或'Debug' . 当我这样做时,会打开一个窗口,其中包含解决方案中的所有测试,我可以单击绿色'play'三角形来运行它们 .
我也可以从Debug - > Performance Profiler开始在profiler下运行我的程序 .
到现在为止还挺好 . 现在,如何在Profiler下运行单元测试?
当我第一次提出这个问题时,我寻找剖析单元测试并看到它是Visual Studio Professional中的一个功能 . 但实际上,我并没有使用VS自己的单元测试支持,而是使用Resharper驱动的NUnit . 对不起,让所有人都离开了香味 .
1 回答
免责声明
我正在使用Visual Studio Enterprise 2017,所以我无法检查,这是否适用于Professional .
打开测试资源管理器,例如
Ctrl + Q
,然后输入Test Explorer
并点击Enter
您应该在Test Explorer中看到您的测试 . 如果你不能,Build .
选择一项测试,右键单击它,然后选择“配置文件测试”
解决方法
我必须注意,我正在使用xunit和autofixture,我还没有看到此功能正常工作 . 见this issue,为什么我没有 .
因此,基于Jeremy Liberman的answer,我能够使用以下步骤解决:
将
xunit.runner.console
NuGet包安装到测试项目中单击工具栏中的Analyze> Performance Profiler ....
将目标更改为可执行文件
单击“开始”
按照向导,直至到达选择要分析的应用程序(.EXE,.DLL,网站)
选择可执行文件(.EXE文件)
基于Run tests with the xUnit.net console runner,我指定了以下值:
完整路径:
c:\<...>\src\packages\xunit.runner.console.2.4.0\tools\net472\xunit.console.exe
(适合您的环境)命令行参数:
<Product>.Tests\bin\Debug\<Product>.Tests.dll
工作目录:
c:\<...>\src\
(解决方案的根目录)接下来,完成
请注意,这会分析测试程序集中的所有测试 . 您可以通过向
xunit.runner.console
提供更多命令行参数来选择要运行的测试 . 要了解有关控制台运行器选项的更多信息,请运行没有命令行选项的控制台运行器 .