SonarQubeがRubyonRailsプロジェクトのテストコードカバレッジを表示しない

gomisha

SonarQubeでテストカバレッジを表示したいRubyonRailsプロジェクトがあります。プロジェクトは、結果をSonarQubeに送信するJenkinsで構築されています。ユニットテストはrspecで実行され、コードカバレッジはSimpleCovで計算されます。SonarQubeでは、コードカバレッジレポートをjson形式で生成する必要があるためsimplecov-jsonを使用しましたrails_helper.rb

if Rails.env.development? || Rails.env.test?
  require 'simplecov'
  require 'simplecov-json'
  SimpleCov.formatter = SimpleCov::Formatter::JSONFormatter
  SimpleCov.start
end

コードカバレッジレポートは正常に生成され、次のcoverageようなフォルダーに保存されます(Jenkinsコンソール出力から):

Coverage report generated for RSpec to /my-project/coverage/coverage.json. 2000 / 2000 LOC (100.0%) covered.

sonar-project.propertiesはこのように構成しました(カバレッジレポートを読むため):

sonar.sources=.
sonar.exclusions=**/*_test.go,**/vendor/**,**/coverage/**

sonar.tests=.
sonar.test.inclusions=**/*_spec.rb
sonar.test.exclusions=**/vendor/**
sonar.ruby.coverage.reportPaths=coverage/coverage.json
sonar.ruby.coverage.framework=RSpec

Jenkinsはプロジェクトをビルドし、テストを実行し、カバレッジレポートを生成し、結果をSonarQubeに送信します。しかし、SonarQubeは何らかの理由で常に0%のカバレッジを表示します。

SonarQubeカバレッジレポート

実行中sonar-scanner -X(デバッグモード)は、次のエラーを示します(Jenkinsコンソールログ):

15:52:30.458 ERROR: Cannot read coverage report file, expecting standard SimpleCov resultset JSON format: 'coverage/coverage.json'
java.lang.ClassCastException: java.lang.String cannot be cast to org.sonarsource.analyzer.commons.internal.json.simple.JSONObject
    at org.sonarsource.ruby.plugin.SimpleCovSensor.mergeFileCoverages(SimpleCovSensor.java:112)
    at org.sonarsource.ruby.plugin.SimpleCovSensor.execute(SimpleCovSensor.java:71)
    at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:45)

SonarQubeがjsonカバレッジレポートを読むのに問題があるようです-期待どおりにフォーマットされていません。

ニックロールス

SonarのSimpleCovサポートは.resultset.json、JSONフォーマッターの出力ではなく、ファイルを想定しています。代わりに、構成が結果セットを指すようにする必要があります。

sonar.ruby.coverage.reportPaths=coverage/.resultset.json

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Sonarqube6.7.5プロジェクトにsrc / main / javaフォルダーがない場合でもコードカバレッジを計算する

分類Dev

SonarQube 6.0は、プロジェクトの特定のバージョンのコードカバレッジを取得します

分類Dev

SonarQubeが単体テストのカバレッジを取得しない

分類Dev

サブプロジェクトを含むプロジェクトのXcodeコードカバレッジ

分類Dev

sonarqubeを使用した複数のプロジェクトファイルにわたるコードカバレッジ分析

分類Dev

Sonarqubeはテストのコードカバレッジを除外しますが、コードの臭いと重複検出には含めます

分類Dev

Tensorflowオブジェクト検出APIがグローバルステップを表示しない

分類Dev

xcode 9.2でxcode 9.3のコードから開くと、「プロジェクトをロードできませんでした、互換性のないプロジェクトバージョン」ポップアップが表示されます

分類Dev

マルチモジュールAndroidプロジェクトのグローバルコードカバレッジ:マージコードカバレッジレポート(ユニットおよびUIテスト)

分類Dev

ソリューションテストのコードカバレッジ結果ファイルを、テストプロジェクトディレクトリではなくソリューションディレクトリに出力する方法

分類Dev

Angular +サイプレスのコードカバレッジレポートが機能しない

分類Dev

SonarQube:JaCoCoを使用したマルチモジュールgradleプロジェクトのカバレッジが不完全

分類Dev

チェックボックスがオフのステージを保存していないローカルストレージ

分類Dev

SonarQube Jacocoオフラインインストルメンテーションは、Mavenマルチモジュールプロジェクトで0%のカバレッジを示しています

分類Dev

.NET標準プロジェクトのコードカバレッジ

分類Dev

VS2013のコードカバレッジは、実際のコードではなく、テストのカバレッジを示しています

分類Dev

simplecovを使用したRubyonRailsテストカバレッジ

分類Dev

RESTAPIを使用したソナーのプロジェクトのコードカバレッジを確認してください

分類Dev

SonarQubeがCoberturaコードカバレッジを取得していない

分類Dev

新しいRubyonRailsプロジェクトの作成が機能しない

分類Dev

Mavenビルドのコードカバレッジ-クラスディレクトリがないためにJaCoCoの実行をスキップする

分類Dev

Espressoテストを使用してAndroidプロジェクトのカバレッジを取得する方法

分類Dev

バージョン2.0にアップグレードした後、ドットネットテストタスクが「MSB1008:1つのプロジェクトのみを指定できます」というエラーで失敗する

分類Dev

.netコアプロジェクトコードカバレッジビジュアルスタジオ2017

分類Dev

VisualStudioコードのPHPデバッグがDockerプロジェクトのブレークポイントで停止しない

分類Dev

ドットネットコア2プロジェクトで問題を示さないTravisのSonarQube

分類Dev

SonarQubeを使用したTFS、製品プロジェクトなし、テストプロジェクトのみ

分類Dev

Gradleマルチモジュールプロジェクトのsonarqube6.2でのカバレッジ計算が間違っています

分類Dev

SonarqubeがTFS2017ビルドのコードカバレッジを測定していない

Related 関連記事

  1. 1

    Sonarqube6.7.5プロジェクトにsrc / main / javaフォルダーがない場合でもコードカバレッジを計算する

  2. 2

    SonarQube 6.0は、プロジェクトの特定のバージョンのコードカバレッジを取得します

  3. 3

    SonarQubeが単体テストのカバレッジを取得しない

  4. 4

    サブプロジェクトを含むプロジェクトのXcodeコードカバレッジ

  5. 5

    sonarqubeを使用した複数のプロジェクトファイルにわたるコードカバレッジ分析

  6. 6

    Sonarqubeはテストのコードカバレッジを除外しますが、コードの臭いと重複検出には含めます

  7. 7

    Tensorflowオブジェクト検出APIがグローバルステップを表示しない

  8. 8

    xcode 9.2でxcode 9.3のコードから開くと、「プロジェクトをロードできませんでした、互換性のないプロジェクトバージョン」ポップアップが表示されます

  9. 9

    マルチモジュールAndroidプロジェクトのグローバルコードカバレッジ:マージコードカバレッジレポート(ユニットおよびUIテスト)

  10. 10

    ソリューションテストのコードカバレッジ結果ファイルを、テストプロジェクトディレクトリではなくソリューションディレクトリに出力する方法

  11. 11

    Angular +サイプレスのコードカバレッジレポートが機能しない

  12. 12

    SonarQube:JaCoCoを使用したマルチモジュールgradleプロジェクトのカバレッジが不完全

  13. 13

    チェックボックスがオフのステージを保存していないローカルストレージ

  14. 14

    SonarQube Jacocoオフラインインストルメンテーションは、Mavenマルチモジュールプロジェクトで0%のカバレッジを示しています

  15. 15

    .NET標準プロジェクトのコードカバレッジ

  16. 16

    VS2013のコードカバレッジは、実際のコードではなく、テストのカバレッジを示しています

  17. 17

    simplecovを使用したRubyonRailsテストカバレッジ

  18. 18

    RESTAPIを使用したソナーのプロジェクトのコードカバレッジを確認してください

  19. 19

    SonarQubeがCoberturaコードカバレッジを取得していない

  20. 20

    新しいRubyonRailsプロジェクトの作成が機能しない

  21. 21

    Mavenビルドのコードカバレッジ-クラスディレクトリがないためにJaCoCoの実行をスキップする

  22. 22

    Espressoテストを使用してAndroidプロジェクトのカバレッジを取得する方法

  23. 23

    バージョン2.0にアップグレードした後、ドットネットテストタスクが「MSB1008:1つのプロジェクトのみを指定できます」というエラーで失敗する

  24. 24

    .netコアプロジェクトコードカバレッジビジュアルスタジオ2017

  25. 25

    VisualStudioコードのPHPデバッグがDockerプロジェクトのブレークポイントで停止しない

  26. 26

    ドットネットコア2プロジェクトで問題を示さないTravisのSonarQube

  27. 27

    SonarQubeを使用したTFS、製品プロジェクトなし、テストプロジェクトのみ

  28. 28

    Gradleマルチモジュールプロジェクトのsonarqube6.2でのカバレッジ計算が間違っています

  29. 29

    SonarqubeがTFS2017ビルドのコードカバレッジを測定していない

ホットタグ

アーカイブ