Асинхронные методы, помеченные как «ExcludeFromCodeCoverage», по-прежнему отображаются как не охваченные в Sonarqube. - PullRequest
0 голосов
/ 06 июля 2018

У меня есть служба 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, если это помогает.

...