我们正在为一个使用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
文件
以下是启动选项:
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
答案 0 :(得分:1)
我们与RedGate支持取得联系,他们解决了我们的问题。
单独使用/testcontainer
命令行参数运行探查器是可行的!原来,/ testsettings参数是导致故障的参数,然后,一旦我将其删除,探查器便能够看到源代码。
不好:我们将测试工具更改为MSTest后,需要使用/testsettings
参数。它负责引用我们的某些依赖项。删除参数后,解决方案是仅出于测试目的而对我们的依赖项的路径进行硬编码。