我也知道也曾问过这个问题,但是我找不到任何解决方案。
我有一个Microsoft Azure事件中心处理器ProcessorHost
,它正在实现IEventProcessor
接口。
该类中有方法IEventProcessor.OpenAsync
,IEventProcessor.CloseAsync
和其他自定义方法。对于那些自定义方法,我已经使用MSTest编写了测试用例,并且它们已经通过。
现在我已经用OpenAsync
装饰了CloseAsync
和[ExcludeFromCodeCoverage]
方法,如下所述。
[ExcludeFromCodeCoverage]
async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
{
}
[ExcludeFromCodeCoverage]
Task IEventProcessor.OpenAsync(PartitionContext context)
{
}
我正在使用Sonar-cube来测试代码覆盖率。当我运行报告以查看代码覆盖率时,它表明OpenAsync
方法已被覆盖,但即使用CloseAsync
装饰后,[ExcludeFromCodeCoverage]
方法也未被覆盖。
所以我想知道CloseAsync方法还有什么要做的事情,以将其排除在代码范围之外。
编辑: closeAsync的完整方法
async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
{
if (reason == CloseReason.Shutdown)
{
await context.CheckpointAsync();
}
}
答案 0 :(得分:1)
查看是否删除 async / await 帮助。
var listObject = Helper.GetQuerable("System.Int32");
这是两种方法的实现之间唯一明显的区别
答案 1 :(得分:0)
SonarC#中可能存在与此属性有关的错误。请检查以下内容:https://github.com/SonarSource/sonar-csharp/issues/1421
尝试更新到SonarQube的最新版本。