1

Gradle では、複数のプロジェクトがある場合、1 つのプロジェクトから Jacoco テスト カバレッジ レポートを生成し、他のプロジェクトのクラスをレポートに表示することができます。

そのために、Gradle 2.14 のJacocoReport ドキュメントには、次の2 つのディレクティブのペアがリストされています。

  • sourceDirectories&classDirectories
  • additionalSourceDirs&additionalClassDirs

ただし、どちらも単一の FileCollection と、すべてのプロジェクト ソース セットと出力ファイルに対するいくつかの接着剤を想定しており、レポートに埋め込まれた実際のソース コードを使用してコード行レベルのfiles()監査を取得するには、 onの呼び出しがsomeJavaProjectSourceSet.srcDirs必要です。

より良い方法はありますか?

4

1 に答える 1

3

このsourceSetsディレクティブは、ソース コードとクラス ファイルの両方を含む他のソース セットをレポートに追加します。

何らかの理由でプラグインのドキュメントには表示されませんが、実際にはプラグイン自体が現在のプロジェクトのファイルをデフォルトjacocoTestReportタスクに追加する方法です。

/**
 * Adds a source set to the list to be reported on.
 * The output of this source set will be used as classes to include in the report.
 * The source for this source set will be used for any classes included in the report.
 *
 * @param sourceSets one or more source sets to report on
 */
public void sourceSets(final SourceSet... sourceSets)

他のプロジェクトのソース セットを含めるには、次の操作を実行できます。

jacocoTestReport {
    sourceSets project(':myAlphaProject').sourceSets.main
    sourceSets project(':myBetaProject').sourceSets.main
}

単純 !

于 2016-06-15T09:27:25.817 に答える