我正在尝试获取在 IIS 中运行的 ASP.NET REST 服务(使用 global.asax 文件)的代码覆盖率指标。我遵循了以下基本步骤:
- 使用“VSPerfClrEnv /globaltraceon”设置环境变量(然后重新启动计算机)(我也尝试过 /globalsampleon)
- 使用“vsinstr –coverage”检测 DLL 的代码覆盖率,我对 5 个我感兴趣的 DLL 执行此操作
- 使用“VSPerfCmd /start:coverage /output:cc.coverage /CS /user:Everyone”启动分析器
- 在 IIS 10 1703 中启动服务,使用任务管理器记下 w3wp.exe 的 PID
- 使用“VSPerfCmd /attach:”将探查器附加到服务
- 从 Visual Studio '17 Enterprise Test Explorer 对服务运行测试
- 使用“VSPerfCmd /detach”
- 使用“VSPerfCmd /shutdown”
但是当我打开创建的 cc.coverage 文件时,只有一两个 DLL(不一致)有覆盖结果,并且测试绝对会在所有 5 个 DLL 中执行代码。我做错了什么或错过了一步吗?谢谢!