0

Karma テストを maven に統合し、SonarQube を使用してテスト カバレッジ レポートを作成する作業を行っています。

HTML カルマ テスト カバレッジ レポート (カバレッジ タイプ HTML in karma.conf.js) を表示できますが、タイプが lcov in の場合、SonarQube で結果を表示できませんkarma.conf.js

の内容pom.xml

<properties>
    <sonar.language>js</sonar.language>
    <sonar.exclusions>src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/js/vendor/**</sonar.exclusions>
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
    <sonar.javascript.lcov.reportPath>src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/karma_target/lcov.info</sonar.javascript.lcov.reportPath>
</properties>



<build>
    <!-- Karma test sonar coverage properties: Start-->   
    <sourceDirectory>${basedir}/src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/js</sourceDirectory>
    <testSourceDirectory>${basedir}/src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/js_test</testSourceDirectory>

実行すると、プロパティmvn clean install sonar:sonarに記載されている lcov.info ファイルが作成<sonar.javascript.lcov.reportPath>されます。

lcov.infoファイルの内容:

TN:
SF:D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui\src\main\content\jcr_root\etc\clientlibs\loyalty\js\config\namespace.js
FN:15,(anonymous_1)
FNF:1
FNH:1
FNDA:5,(anonymous_1)
DA:2,1
DA:15,1
DA:17,5
DA:21,5
DA:22,0
DA:25,5
DA:28,8
DA:30,5
DA:33,8
DA:36,5
LF:10
LH:9
BRDA:2,1,0,1
BRDA:2,1,1,1
BRDA:21,2,0,0
BRDA:21,2,1,5
BRDA:28,3,0,5
BRDA:28,3,1,3
BRF:6
BRH:5
end_of_record

実行後、SonarQube ダッシュボードに js コード違反が表示されますが、コード カバレッジは表示されません。 ここに画像の説明を入力

での構成karma.conf.js:

preprocessors: {
      'tpl/*.html': 'ng-html2js',
      '!(vendor)/*.js': 'coverage'
    },

    coverageReporter: {
      // specify a common output directory
      type: 'lcov',
      dir : 'karma_target/karma-coverage'
    },

使用しているSonarQubeのバージョンは5.0.1、jsプラグインのバージョンは2.11

問題は相対パスにあると思います。これらのリンクhereherelcov.infoを調べて、手動でファイルを相対的に指すように SF パスを更新しようとしましたが、すべて役に立ちませんでした。% はまだ 0 です。

ここで何か間違ったことをしている場合はお知らせください。以下のコンソール ログ。参照されているすべてのパスは正しいものです。

[INFO] [13:21:32.877] Base dir: D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui
[INFO] [13:21:32.877] Working dir: D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui\target\sonar
[INFO] [13:21:32.886] Source paths: pom.xml, src/main/content/jcr_root/etc/clientlibs/loyalty/js
[INFO] [13:21:32.888] Test paths: src/main/content/jcr_root/etc/clientlibs/loyalty/js_test

[INFO] [13:21:34.441] Analysing D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui\src\main\content\jcr_root\etc\clientlibs\loyalty\karma_target\lcov.info
[INFO] [13:21:34.441] 25/25 source files have been analyzed
4

1 に答える 1

0

やっと動作しました。それは相対パスのこの悪質な問題でした! 問題はkarma.conf.js、ターゲットおよび他のフォルダーに対するファイルの相対位置にありました。今はすべてうまくいっています。

于 2016-05-16T02:50:50.590 に答える