dotTrace 2026.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。

2026年 7月 14日