问题描述
我们将SonarCloud用于C#.NET Core应用程序上的Azure DevOps中的代码分析。
经常发生的问题是,抛出异常的行显示为未发现,如下所示
此文件的总代码覆盖率显示为36.8%,所有引发的异常都突出显示为未发现。
但是,正在使用xUnit在测试文件中明确测试这些异常:
[Fact]
public void It_should_not_allow_empty_importance_value()
{
try
{
_validator.ValidateImportance("",0);
}
catch (FileFormatException ex)
{
Assert.Equal("Missing importance value in row 1",ex.Message);
}
}
还使用了“ Assert.Throws”断言:
[Fact]
public void It_should_not_allow_empty_importance_value()
{
Assert.Throws<FileFormatException>(() => _validator.ValidateImportance("",0));
}
检查由构建管道生成的.coverage文件,发现该文件被100%覆盖:
“准备分析配置”任务的配置如下,从分析中排除某些文件:
# Additional properties that will be passed to the scanner,# Put one key=value per line,example:
sonar.exclusions=**/*.bin,**/WebApi/Migrations/*,**Tests.Unit/*,**Tests.Integration/*,**/WebApi/Extensions/EfCoreExtensions.cs
sonar.cs.vstest.reportsPaths=$(Agent.TempDirectory)/TestResults/*.trx
在本地运行测试将返回给定文件的100%覆盖率。
C#代码覆盖异常是否存在问题?这是整个项目中的一个问题,抛出的异常显示为未涵盖。
请让我知道是否需要其他信息。任何建议表示赞赏。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)