使用带有 ANTS Performance Profiler 的 MSTest 缺少源代码

Missing source code using MSTest with ANTS Performance Profiler

我们正在为使用 ASP.NET C# 与 EF 6 和 .Net Framework 4.6.1 的客户开发一个项目。我们有一些集成测试和单元测试 运行 有点慢,所以我们决定 运行 一个分析器。在我们的搜索中,我们遇到了 ANTS Performance Profiler 并决定试一试。

我们使用 .NET 可执行文件创建了一个分析会话,并将分析模式配置为 line-level & method-level timings - All methods inc. framework。但是,当 运行 访问分析器时,我们看不到任何方法,并面临错误消息

The profiler did not find any methods with the source code. To see all profiled methods, in Display Options below select 'All methods.

我该如何解决这个问题?


我们最初使用 VSTest 时遇到了这个问题,然后决定改用 MSTest,因为它似乎有更好的文档 (1)。也没用。

我们进行了一些调查并尝试了一些链接 (2) (3),但其中 none 有帮助。 我们发现一个可能的问题是 ANTS Profiler 没有找到 .pdb 文件。但是,我们验证了 .pdb 文件存在于同一文件夹中,并且与程序集的 DLL 具有相同的名称。我们还 运行 进程监视器并确认进程 MSTest.exe 正在读取正确的 .pdb 文件

以下是启动选项:

附加信息:

我们联系了 RedGate 支持,他们解决了我们的问题。

运行 带有 /testcontainer 命令行参数的探查器本身就可以工作!原来 /testsettings 参数是导致故障的原因,然后,一旦我删除它,探查器就能够看到源代码。

Obs:在我们将测试工具更改为 MSTest 后,需要 /testsettings 参数。它负责引用我们的一些依赖项。去掉参数后,解决方案是硬编码我们依赖的路径,只是为了测试。