web-dev-qa-db-ja.com

Jenkins PipelineのJacocoカバレッジ

Jenkins PipelineでJacocoを実行する方法があるかどうかを提案できますか?プラグインをダウンロードしましたが、パイプラインスクリプトヘルプである「パイプライン構文」でJacocoのオプションが表示されません。

このURLを参照しました: https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin jenkins jacocoパイプラインに関する情報はありません

35
user5917011

これを行う方法の簡単な例をインターネットで探し回った後、私は最終的にJenkinsインスタンス内に「ステップ」ツールを見つけました。

インストールしたプラグインとモジュールに基づいて、Jenkinsfileパイプラインコードのスニペットを生成する方法を知っています。

長所と短所は、基本的なエントリが次のように見えることです。

stage('Build') {
     steps {
        sh './jenkins_build.sh'
        junit '*/build/test-results/*.xml'
        step( [ $class: 'JacocoPublisher' ] )
     }
}

Jenkinsのドキュメントには、実際にいくつかのワンライナーの例を含む更新が必要です。

Example from Jenkins 2.32.x

27

Jacocoパイプラインステップ構成では、次の形式を使用します。

step([$class: 'JacocoPublisher', 
      execPattern: 'target/*.exec',
      classPattern: 'target/classes',
      sourcePattern: 'src/main/Java',
      exclusionPattern: 'src/test*'
])

または、宣言パイプラインのより単純な構文を使用します。

jacoco( 
      execPattern: 'target/*.exec',
      classPattern: 'target/classes',
      sourcePattern: 'src/main/Java',
      exclusionPattern: 'src/test*'
)

JaCoCoパイプラインステップリファレンス で他のオプションを見つけることができます

23
user2688838

Jacocoプラグイン2.2.1以降、jacoco(execPattern: 'target/jacoco.exec')を使用できるようになりました

私は個人的に実行ごとに異なるJacocoファイルをいくつか持っていて、MavenとGradleの両方をサポートしたいので(build/およびtarget/ディレクトリ)、jacoco(execPattern: '**/*.exec')を使用します。

リファレンス: https://github.com/jenkinsci/jacoco-plugin/pull/8

16
phillipuniverse

パイプラインと互換性のあるプラグインのリスト を見ると、Jenkins JaCoCoプラグイン 互換性があった が見つかりますが、ドキュメントの更新はありません。ただし、 変更ログへの入力

バージョン2.1.0(2016年9月29日)

JENKINS-27120 JaCoCoパブリッシャーのワークフローサポートの追加

おそらく、その使用法はシンプルであり、他の多くのステップの使用法に似ているためです。

step([$class: 'JacocoPublisher', ...])
3
Godin

Jacoco jenkinsプラグインを使用する最良の方法は、実行可能ファイル(jacoco.exec)アプリケーション内で、パイプライン内のそのファイルの場所を指定します。マルチモジュールプロジェクトの場合、設定はわずかに異なりますが、参照してください: マルチモジュールMavenプロジェクトのJacocoコードカバレッジ

Jenkins Pipelineは次のようになります。

jacoco(
    execPattern: '**/path_to_file/jacoco.exec',
    classPattern: '**/coverage/**',
    sourcePattern: '**/coverage/**',
    inclusionPattern: '**/*.class'
)
0
addu390