【问题标题】:sonar C# ecosystem: how to configure IT test coveragesonar C# 生态系统:如何配置 IT 测试覆盖率
【发布时间】:2013-05-02 09:53:15
【问题描述】:

我们有一个 .NET C# 解决方案,其中包含一些首次集成测试,但没有单元测试。我如何配置 sonar-project.properties 才能使测试执行和代码覆盖率正常工作? 使用时:

sonar.dotnet.visualstudio.testProjectPattern=*.Tests;*.Test
sonar.dotnet.visualstudio.itProjectPattern=*.IntegrationTest
sonar.opencover.installDirectory=C:/Program Files/OpenCover
sonar.gallio.coverage.tool=OpenCover
sonar.gallio.runner=IsolatedProcess
sonar.gallio.it.mode=active

声纳说:

14:42:55.813 INFO  p.d.a.m.ModelFactory - The project 'foo.IntegrationTest' has been  qualified as a test project.
14:42:55.844 INFO  p.d.a.m.ModelFactory - The project 'bar.IntegrationTest' has been qualified as a test project.
...
Gallio won't execute as there are no test projects

更改测试模式时:

sonar.dotnet.visualstudio.testProjectPattern=*.IntegrationTest
#sonar.dotnet.visualstudio.itProjectPattern=*.IntegrationTest

gallio 将集成测试作为“单元测试”执行,并且代码覆盖率有效。有什么提示吗?

【问题讨论】:

    标签: c# plugins integration-testing sonarqube


    【解决方案1】:

    我正在使用它来生成代码覆盖率。 例如项目是Test/Test.csproj

    cd ./Test
    nuget install Microsoft.CodeCoverage -OutputDirectory ./packages
    

    ./packages 中的嵌套目录将是 CodeCoverage.exe

    dotnet test --no-build logger trx --collect "CodeCoverage" /p:Debug=full -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.CoverageFileName="test.coverage"
    

    在嵌套目录的 TestResults 中会有 test.coverage 文件。 将其转换为coveragexml

    CodeCoverage.exe analyze /output:test.coveragexml test.coverage
    

    然后在声纳扫描仪中使用它

    ./SonarScannerMsbuild.exe /d:"sonar.cs.vstest.reportsPaths=./**/*.trx" /d:"sonar.cs.vscoveragexml.reportsPaths=./**/*coveragexml"
    

    【讨论】:

      猜你喜欢
      • 2012-09-07
      • 2020-09-09
      • 2023-03-31
      • 1970-01-01
      • 2015-01-07
      • 2013-05-07
      • 1970-01-01
      • 2016-01-16
      • 2014-05-11
      相关资源
      最近更新 更多