ExcludeFromCodeCoverage 不适用于 CloseAsync 方法
ExcludeFromCodeCoverage not working for CloseAsync method
我知道之前也有人问过这个问题,但是我找不到解决这个问题的方法。
我有一个 Microsoft Azure 事件中心处理器,ProcessorHost
正在实现 IEventProcessor
接口。
在这个 class 中有方法 IEventProcessor.OpenAsync
、IEventProcessor.CloseAsync
和其他一些自定义方法。对于那些自定义方法,我已经使用 MSTest 编写了测试用例并且它们已经通过。
现在我已经用 [ExcludeFromCodeCoverage]
修饰了 OpenAsync
和 CloseAsync
方法,如下所述。
[ExcludeFromCodeCoverage]
async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
{
}
[ExcludeFromCodeCoverage]
Task IEventProcessor.OpenAsync(PartitionContext context)
{
}
我正在使用 Sonar-cube 来测试代码覆盖率。当我运行查看代码覆盖率的报告时,它显示OpenAsync
方法被覆盖,但是即使用[ExcludeFromCodeCoverage]
修饰后CloseAsync
方法也没有被覆盖。
所以我想知道是否需要为 CloseAsync 方法执行任何其他操作才能将其排除在代码覆盖范围之外。
编辑:
closeAsync
的完整方法
async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
{
if (reason == CloseReason.Shutdown)
{
await context.CheckpointAsync();
}
}
SonarC# 中可能存在与此属性相关的错误。请检查:https://github.com/SonarSource/sonar-csharp/issues/1421
尝试更新到最新版本的SonarQube。
看看删除 async / await 是否有帮助。
[ExcludeFromCodeCoverage]
Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
if (reason == CloseReason.Shutdown) {
return context.CheckpointAsync();
}
return Task.CompletedTask;
}
这是两种方法的实现之间唯一明显的区别
我知道之前也有人问过这个问题,但是我找不到解决这个问题的方法。
我有一个 Microsoft Azure 事件中心处理器,ProcessorHost
正在实现 IEventProcessor
接口。
在这个 class 中有方法 IEventProcessor.OpenAsync
、IEventProcessor.CloseAsync
和其他一些自定义方法。对于那些自定义方法,我已经使用 MSTest 编写了测试用例并且它们已经通过。
现在我已经用 [ExcludeFromCodeCoverage]
修饰了 OpenAsync
和 CloseAsync
方法,如下所述。
[ExcludeFromCodeCoverage]
async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
{
}
[ExcludeFromCodeCoverage]
Task IEventProcessor.OpenAsync(PartitionContext context)
{
}
我正在使用 Sonar-cube 来测试代码覆盖率。当我运行查看代码覆盖率的报告时,它显示OpenAsync
方法被覆盖,但是即使用[ExcludeFromCodeCoverage]
修饰后CloseAsync
方法也没有被覆盖。
所以我想知道是否需要为 CloseAsync 方法执行任何其他操作才能将其排除在代码覆盖范围之外。
编辑: closeAsync
的完整方法async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
{
if (reason == CloseReason.Shutdown)
{
await context.CheckpointAsync();
}
}
SonarC# 中可能存在与此属性相关的错误。请检查:https://github.com/SonarSource/sonar-csharp/issues/1421
尝试更新到最新版本的SonarQube。
看看删除 async / await 是否有帮助。
[ExcludeFromCodeCoverage]
Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
if (reason == CloseReason.Shutdown) {
return context.CheckpointAsync();
}
return Task.CompletedTask;
}
这是两种方法的实现之间唯一明显的区别