繁体   English   中英

SonarQube 指出“未涵盖的行”,但单元测试涵盖了它们(MediatR 句柄)

[英]SonarQube states "lines not covered" but they are covered by UnitTests (MediatR Handle)

我遇到了 SonarQube 的问题,我认为这与 C# 中 MediatR 的句柄 function 有关。

这是句柄 function SonarQube 表示未被测试覆盖在此处输入图像描述

但是这个 function 是通过这两个单元测试来测试的:

[Fact]
public async Task SpeichereBetriebCommandHandler_SollteGuidZurueckgeben_WennBetriebNichtExistiert()
{
    // Arrange
    Fixture fixture = new Fixture();

    var speichereBetriebCommand = fixture.Build<SpeichereBetriebCommand>().Create();
    
    // Act
    var result = await _speichereBetriebCommandHandler.Handle(speichereBetriebCommand, new System.Threading.CancellationToken());
    
    // Assert
    result.Should().NotBe(String.Empty);
}

[Fact]
public async Task SpeichereBetriebCommandHandler_SollteLeerStringZurueckgeben_WennBetriebExistiert()
{
    // Arrange
    Fixture fixture = new Fixture();

    var someData .....

    var betrieb = fixture.Build<BetriebDto>()
        .With(b => b.SomeData, someData )
        .
        .
        .
        .Create();

    var speichereBetriebCommand = fixture.Build<SpeichereBetriebCommand>()
        .With(b => b.SomeData, someData)
        .
        .
        .
        .Create();
    
    await _betriebRepository.AddAsync(betrieb);
    await _statistikContextRepository.SaveChangesAsync();
    
    // Act
    var result = await _speichereBetriebCommandHandler.Handle(speichereBetriebCommand, new System.Threading.CancellationToken());
    
    // Assert
    result.Should().Be(String.Empty);
}

我还调试了单元测试,两者都落在句柄 function 中。所以我测试了完整的 function。为什么 SonarQube 不同意我的看法?

问题已解决。 根本原因是我正在使用 XUnit,但 my.csproj 文件中仍然存在一些 NUnit 引用。 这导致测试无法在管道中正确执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM