Visual Studio 2017 + NUnit + Resharper中的配置文件单元测试

时间:2018-06-14 19:28:58

标签: c# unit-testing visual-studio-2017 resharper profile

我在Visual Studio 2017 Professional中有一个C#项目。它有一些单元测试:用[Test]声明的方法在编辑器中显示一个小绿色勾号图标,我可以右键单击并“运行”或“调试”测试。当我这样做时,会打开一个窗口,其中包含解决方案中的所有测试,我可以单击绿色的“播放”三角形来运行它们。

我也可以在调试器下运行我的程序 - 从Debug - > Performance Profiler。

到目前为止一切顺利。现在,如何在分析器下运行单元测试?

当我第一次提出这个问题时,我寻找剖析单元测试并看到它是Visual Studio Professional中的一个功能。但实际上,我并没有使用VS自己的单元测试支持,而是使用Resharper驱动的NUnit。很抱歉让所有人都不在气味中。

3 个答案:

答案 0 :(得分:1)

免责声明

我正在使用 Visual Studio Enterprise 2017 ,所以我无法检查它是否在 Professional 中有效。


  1. 打开 Test Explorer ,例如Ctrl + Q,然后键入Test Explorer并点击Enter
  2. 您应该在 Test Explorer 中看到您的测试。如果不能,请 Build
  3. 选择一个测试,右键单击它,然后选择 Profile Test

解决方法

我必须注意,我正在使用,但是我没有看到此功能正常工作。请参阅this issue,为什么我没有。
因此,基于answerJeremy Liberman,我可以使用以下步骤来解决:

  1. xunit.runner.console NuGet软件包安装到测试项目中
  2. 工具栏中单击分析> 性能分析器...
  3. Target 更改为可执行
  4. 点击开始
  5. 遵循向导,直到到达选择要配置的应用程序(.EXE,.DLL,网站)
  6. 选择可执行文件(.EXE文件)
  7. 基于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\解决方案的根)
  8. 下一步完成

请注意,这将描述测试程序集中的所有测试。您可以通过向xunit.runner.console提供更多命令行参数来选择要运行的测试。要了解有关控制台运行程序选项的更多信息,请在不使用命令行选项的情况下运行控制台运行程序。

答案 1 :(得分:1)

使用VS2017 Professional和诊断工具,您可以在两个断点之间分析代码!

因此,您可以使用以下任何工具(VS Test Explorer,ReSharper等)调试单元测试(xunit,nunit,mstest等)!

  1. enable diagnostic tools while debugging(请参阅answer from tm1
  2. 在单元测试的开始处设置一个断点,在结束时(或您喜欢的任何地方)设置一个断点
  3. 使用您喜欢的工具调试单元测试,您会遇到第一个断点。
  4. 打开“诊断工具”窗口(“调试”>“ Windows”>“显示诊断工具”)
  5. 开始记录CPU配置文件(所有这些图下方的小记录按钮)
  6. 继续(F5)到下一个断点
  7. 现在,
  8. VS将为此时期创建一个快照,您可以深入研究相关方法。瞧!

仅出于完整性考虑,另一种商业解决方案是Jetbrain的DotTrace,在撰写本文时,它是ReSharper Ultimate的一部分。在这里,您可以直接配置您的单元测试,而无需手动断点。

答案 2 :(得分:0)

如果您可以调试并在断点处停止,则还可以根据this page获得enable diagnostics tools while debugging的CPU和内存使用情况。