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