在M1 macOS上使用dotnet-coverage收集.NET Core 6覆盖率失败问题咨询
关于
No code coverage data available. Profiler was not initialized.提示的说明 这个提示的核心含义是:用于追踪代码执行、收集覆盖率数据的代码分析器(Profiler)未成功启动或完成初始化,导致dotnet-coverage工具无法捕获任何测试执行过程中的代码覆盖信息,最终生成空的coverage.xml文件。
结合你使用M1处理器(ARM64架构)的macOS环境,这个问题大概率和架构兼容性有关:
- 早期版本的
dotnet-coverage对ARM64 macOS的支持存在缺陷,Profiler组件无法在ARM环境下正常加载。 - 虽然.NET Core 6本身支持ARM64 macOS,但配套的
dotnet-coverage工具可能未同步完成架构适配,导致初始化失败。
补充排查方向
- 执行
dotnet tool update dotnet-coverage --global更新工具到最新稳定版,新版本通常修复了ARM架构的兼容性问题。 - 尝试在Rosetta 2兼容模式下运行终端(右键终端→显示简介→勾选“使用Rosetta打开”),以x86_64模式执行覆盖率收集命令。
- 确认测试项目的目标框架配置,确保与运行环境架构匹配(例如设置为
net6.0-osx-arm64)。
内容的提问来源于stack exchange,提问作者MoTahir
相关产品推荐
相关产品推荐

