我有一个Windows服务,其中几乎没有异步方法。
我正在为所有这些方法编写单元测试用例。对于一个异步方法,我不想编写任何测试用例,因此我已经用[ExcludeFromCodeCoverage]
装饰了该方法。
我正在使用Sonarqube来检查代码覆盖率。
我观察到的是具有[ExcludeFromCodeCoverage]
[ExcludeFromCodeCoverage]
async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason) {
if (reason == CloseReason.Shutdown) {
await context.CheckpointAsync();
}
}
仍显示为sonarqube工具中未涵盖的内容。
但是当我重构代码以从方法中删除 async 时,
[ExcludeFromCodeCoverage]
Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
if (reason == CloseReason.Shutdown) {
return context.CheckpointAsync();
}
return Task.CompletedTask;
}
它按预期工作正常。
所以想知道,为什么sonarqube不考虑异步方法。
有什么设置或配置需要做吗?
我正在使用Visual Studio 2015 Professional,框架:4.6.1,SonarQube-7.1(如果有帮助的话)。