分析单元测试
有三种分析单元测试的方法:
请注意,如果您使用 API来控制分析,这是分析单元测试的唯一可能方法。
使用集成在 Visual Studio 中的 dotTrace 分析单元测试
在 Visual Studio 中打开一个解决方案。
打开一个包含单元测试的文件。
选择一个测试类或测试方法。
点击边栏标记中的相应标记。
在上下文菜单中,选择 分析:

单元测试会话 窗口将打开。
指定 分析选项。
测试执行完成后,快照将在 dotTrace Viewer中打开。
从 ReSharper 的单元测试会话窗口分析单元测试
在 单元测试会话 窗口的树视图中选择一个节点。
在工具栏的列表中选择 分析单元测试。

指定 分析选项。
测试执行完成后,将显示一个快照。
使用独立的 dotTrace 分析单元测试
将 dotTrace 作为独立应用程序运行。 dotTrace 主页 窗口将会打开。
添加运行配置——该配置告诉 dotTrace 如何运行被分析的应用程序:
在 选择您想要分析的内容、 新进程运行 下,点击
添加运行配置。在 新建运行配置 向导中,选择 .NET Core 应用程序 并点击 下一步。
根据您使用的单元测试框架,在 路径 字段中指定其可执行文件的路径。 您可以使用以下框架/可执行文件:
NUnit 的 nunit.exe 。
NUnit 的 nunit-console.exe 。
MSTest 的 MSTest.exe 。
xUnit 的 xUnit-console.exe 。
指定包含单元测试的 .dll 文件的路径,并在 实参 字段中添加参数(如果需要)。
如果需要,指定应用程序的完整路径 工作目录 (默认情况下,它与可执行文件所在的目录相同)。
如果需要,使用 设置环境变量 指定环境变量。 每个变量必须在新行中指定。
点击 保存。
确保在 新进程运行 列表中选择了创建的运行配置。
在 选择您要如何分析 下,指定分析选项:
分析类型 :通常,您需要在 采样 (评估性能并确定应用程序中最慢的方法)和 时间线 (与采样相同,但包含额外的时间线数据)之间进行选择。 了解更多关于分析类型的信息
如果您的应用程序创建了多个进程,并且您只想分析特定的进程,可以选择 创建进程过滤器。
例如,如果您需要分析在 nunit-console.exe 下运行的 NUnit 测试,请注意 NUnit 测试运行器会创建一个单独的进程来运行测试。 因此,您需要将 nunit-console.exe 进程从分析中排除。 为此,请添加
nunit-console*过滤器。如有需要,请指定 其他分析选项。
在 运行分析 下,选择 从开始处收集分析数据。
点击 启动。 这将启动分析会话。
使用分析控制器窗口中的 获取快照 按钮收集快照。 了解更多关于如何控制分析会话的信息
使用控制器窗口中的 分离 按钮分离分析器。
使用 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
/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。