使用MSTest和ANTS Performance Profiler丢失源代码

时间:2019-04-10 18:46:20

标签: c# mstest ants

我们正在为一个使用ASP.NET C#和EF 6和.Net Framework 4.6.1的客户开展项目。我们有一些集成测试和单元测试,它们的运行速度有些慢,因此我们决定运行探查器。在搜索中,我们遇到了ANTS Performance Profiler,并决定尝试一下。

我们创建了一个具有.NET可执行文件的性能分析会话,并将性能配置模式配置为line-level & method-level timings - All methods inc. framework。但是,在运行探查器时,我们看不到任何方法,并且会遇到错误消息

  

探查器找不到带有源代码的任何方法。要查看所有概要分析的方法,请在下面的“显示选项”中选择“所有方法”。

我该如何解决?


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

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

以下是启动选项:

  • .NET可执行文件的路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\MSTest.exe
  • 命令行参数:/testcontainer:Projeto.dll /test:Projeto.Features._001_UsuarioFeature._001_A_1_1* /testsettings:"C:\Users\Documents\projeto\TestSettings1.testsettings"
  • 工作目录:C:\Users\Documents\projeto\bin\Debug

其他信息:

  • 我们正在运行ANTS Performance Profiler版本10.1.5.1275

  • 操作系统:Windows 10 Enterprise

1 个答案:

答案 0 :(得分:1)

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

单独使用/testcontainer命令行参数运行探查器是可行的!原来,/ testsettings参数是导致故障的参数,然后,一旦我将其删除,探查器便能够看到源代码。

不好:我们将测试工具更改为MSTest后,需要使用/testsettings参数。它负责引用我们的某些依赖项。删除参数后,解决方案是仅出于测试目的而对我们的依赖项的路径进行硬编码。