dotnet test命令行未遵循runsettings配置的问题解决咨询
解决命令行执行测试时代码覆盖率不遵循runsettings配置的问题
核心调整方案
- 替换参数传递方式:原命令中用
/p:settings指定配置文件的方式,在配合--collect:"Code Coverage"时可能不生效,需改用--settings参数直接指定runsettings文件 - 确认路径有效性:如果runsettings文件不在命令执行的当前目录,要提供完整相对路径或绝对路径
正确的命令行示例
将原命令替换为:
dotnet.exe test MyTestProj.csproj -l:xunit --collect:"Code Coverage" --settings runsettings.runsettings
额外验证步骤
- 检查runsettings文件中
CodeCoverage节点的配置是否准确,比如明确指定包含/排除的DLL,示例配置片段:
<CodeCoverage> <ModulePaths> <Include> <ModulePath>.*你的目标DLL名称\.dll$</ModulePath> </Include> <Exclude> <ModulePath>.*测试项目相关DLL\.dll$</ModulePath> </Exclude> </ModulePaths> </CodeCoverage>
- 执行命令前切换到测试项目所在目录,或给runsettings文件指定完整路径(如
--settings D:\Projects\MyTest\runsettings.runsettings) - 确保命令行使用的.NET SDK版本与Visual Studio中一致,避免版本差异导致的配置兼容问题
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

