我在Visual Studio 2017 Professional中有一个C#项目。它有一些单元测试:用[Test]
声明的方法在编辑器中显示一个小绿色勾号图标,我可以右键单击并“运行”或“调试”测试。当我这样做时,会打开一个窗口,其中包含解决方案中的所有测试,我可以单击绿色的“播放”三角形来运行它们。
我也可以在调试器下运行我的程序 - 从Debug - > Performance Profiler。
到目前为止一切顺利。现在,如何在分析器下运行单元测试?
当我第一次提出这个问题时,我寻找剖析单元测试并看到它是Visual Studio Professional中的一个功能。但实际上,我并没有使用VS自己的单元测试支持,而是使用Resharper驱动的NUnit。很抱歉让所有人都不在气味中。
答案 0 :(得分:1)
我正在使用 Visual Studio Enterprise 2017 ,所以我无法检查它是否在 Professional 中有效。
Ctrl + Q
,然后键入Test Explorer
并点击Enter
我必须注意,我正在使用xunit和autofixture,但是我没有看到此功能正常工作。请参阅this issue,为什么我没有。
因此,基于answer的Jeremy Liberman,我可以使用以下步骤来解决:
xunit.runner.console
NuGet软件包安装到测试项目中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
提供更多命令行参数来选择要运行的测试。要了解有关控制台运行程序选项的更多信息,请在不使用命令行选项的情况下运行控制台运行程序。
答案 1 :(得分:1)
使用VS2017 Professional和诊断工具,您可以在两个断点之间分析代码!
因此,您可以使用以下任何工具(VS Test Explorer,ReSharper等)调试单元测试(xunit,nunit,mstest等)!
仅出于完整性考虑,另一种商业解决方案是Jetbrain的DotTrace,在撰写本文时,它是ReSharper Ultimate的一部分。在这里,您可以直接配置您的单元测试,而无需手动断点。
答案 2 :(得分:0)
如果您可以调试并在断点处停止,则还可以根据this page获得enable diagnostics tools while debugging的CPU和内存使用情况。