dotTrace 2025.2 Help

分析单元测试

有三种分析单元测试的方法:

使用集成在 Visual Studio 中的 dotTrace 分析单元测试

  1. 在 Visual Studio 中打开一个解决方案。

  2. 打开一个包含单元测试的文件。

  3. 选择一个测试类或测试方法。

  4. 点击边栏标记中的相应标记。

  5. 在上下文菜单中,选择 分析

    在 Visual Studio 中分析测试
  6. 单元测试会话 窗口将打开。

  7. 指定 分析选项

  8. 测试执行完成后,快照将在 dotTrace Viewer中打开。

从 ReSharper 的单元测试会话窗口分析单元测试

  1. 单元测试会话 窗口的树视图中选择一个节点。

  2. 在工具栏的列表中选择 分析单元测试

    分析单元测试工具栏
  3. 指定 分析选项

  4. 测试执行完成后,将显示一个快照。

使用独立的 dotTrace 分析单元测试

  1. 将 dotTrace 作为独立应用程序运行。 dotTrace 主页 窗口将会打开。

  2. 添加运行配置——该配置告诉 dotTrace 如何运行被分析的应用程序:

    1. 选择您想要分析的内容新进程运行 下,点击 添加运行配置添加运行配置

    2. 新建运行配置 向导中,选择 .NET Core 应用程序 并点击 下一步

    3. 根据您使用的单元测试框架,在 路径 字段中指定其可执行文件的路径。 您可以使用以下框架/可执行文件:

      • NUnit 的 nunit.exe

      • NUnit 的 nunit-console.exe

      • MSTest 的 MSTest.exe

      • xUnit 的 xUnit-console.exe

      查看更多配置示例

    4. 指定包含单元测试的 .dll 文件的路径,并在 实参 字段中添加参数(如果需要)。

    5. 如果需要,指定应用程序的完整路径 工作目录 (默认情况下,它与可执行文件所在的目录相同)。

    6. 如果需要,使用 设置环境变量 指定环境变量。 每个变量必须在新行中指定。

    7. 点击 保存

  3. 确保在 新进程运行 列表中选择了创建的运行配置。

  4. 选择您要如何分析 下,指定分析选项:

    • 分析类型 :通常,您需要在 采样 (评估性能并确定应用程序中最慢的方法)和 时间线 (与采样相同,但包含额外的时间线数据)之间进行选择。 了解更多关于分析类型的信息

    • 如果您的应用程序创建了多个进程,并且您只想分析特定的进程,可以选择 创建进程过滤器

      例如,如果您需要分析在 nunit-console.exe 下运行的 NUnit 测试,请注意 NUnit 测试运行器会创建一个单独的进程来运行测试。 因此,您需要将 nunit-console.exe 进程从分析中排除。 为此,请添加 nunit-console* 过滤器。

    • 如有需要,请指定 其他分析选项

  5. 运行分析 下,选择 从开始处收集分析数据

  6. 点击 启动。 这将启动分析会话。

  7. 使用分析控制器窗口中的 获取快照 按钮收集快照。 了解更多关于如何控制分析会话的信息

  8. 使用控制器窗口中的 分离 按钮分离分析器。

  9. 使用 dotTrace Viewer分析收集的快照。

配置示例

测试运行器

应用程序

实参

nunit.exe 用于 nUnit

测试运行器可执行文件的路径。

示例: "C:\Program Files (x86)\NUnit 2.5.3\bin\net-2.0\nunit.exe"

包含单元测试的 dll 文件的路径。

示例: "C:\Projects\ConsoleApplication1\ConsoleApplication1Test\bin\Debug\ConsoleApplication1Test.dll"

nunit-console.exe 用于 nUnit

测试运行器可执行文件的路径。

示例: "C:\Program Files (x86)\NUnit 2.5.3\bin\net-2.0\nunit-console.exe"

包含单元测试的 dll 文件的路径以及存储测试结果的 xml 文件的名称。

示例: "C:\Test progs\ConsoleApplication1nUnit\ConsoleApplication1nUnitTest.dll" /xml:C:\Temp\1.xml

MSTest.exe 用于 MSTest

测试运行器可执行文件的路径。

示例: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"

实参:

  • /noisolation - 在 MSTest.exe 进程内运行测试。

  • /testcontainer - 加载包含您想运行的测试的文件。

示例:

/noisolation /testcontainer:"C:\Projects\ConsoleApplication1\ConsoleApplication1Test\bin\Debug\ConsoleApplication1Test.dll"

xUnit-console.exe 用于 xUnit

测试运行器可执行文件的路径。

示例: "C:\Program Files (x86)\xunit-1.5\xunit.console.exe"

包含单元测试的 dll 文件的路径以及存储测试结果的 xml 文件的名称。

示例: "C:\Projects\ConsoleApplication1\ConsoleApplication1xUnit\bin\Debug\ConsoleApplication1xUnit.dll" /xml 1.xml

生成的快照包含大量信息,不仅涉及您正在分析的单元测试,还涉及测试框架本身,这使得提取单元测试相关信息变得具有挑战性。 如果您在快照中根本找不到单元测试代码,请确保测试确实在运行。 在某些情况下,由于权限不足,MSTest 在运行测试之前会停止。 如果是这种情况,请尝试以管理员身份运行 dotTrace。

最后修改日期: 2025年 9月 28日