2017-07-19 6 views
0

のjacocoエージェントjarの場所の検索アプリケーションサーバーでテストカバレッジ分析を実行しようとしています。ユニットテストとエンドツーエンドテストの間でjacocoのバージョンを手動で管理したくないです。 エージェントのパスをgradleタスクから取得する方法はありますか?それは、プラグインと手動の添付ファイルの間にjacocoエージェントのバージョンを維持するためにgradleに依存することができます。gradle(3.3)

最終的な目標は、jacocoエージェントを接続してサーバーを実行し、エンドツーエンドのテストでテストカバレッジ情報を収集することです。

+0

現在のbuild.gradleを添付できますか? – chenrui

+0

関連する唯一の部分は、私がjacocoプラグインを使用していることです。 'apply plugin:" jacoco "'プラグインはjarファイルをどこに保持しているのかを示していません。 – mehmetg

+0

私は私の答えにいくつかの考えを加えました、それがあなたに役立つかどうか教えてください。 – chenrui

答えて

2

エージェントを依存関係として取得できます。ページhttp://www.jacoco.org/jacoco/trunk/doc/repo.htmlに従って:Maven座標 - groupdIdorg.jacocoartifactIdorg.jacoco.agentclassifierruntimeです。これはエージェント(リソースのorg.jacoco:org.jacoco.agent別名「エージェントのローカルコピーを取得するAPI」)としてエージェントへのアクセスを提供し、Gradle JaCoCoプラグインによって使用されるJARにパッケージ化された同じアーティファクトです。 Gradle JaCoCo Pluginと依存関係の一貫性を保つための変数としてバージョンを指定することができます。

+0

これは理想的ではありませんが、設定で2つのバージョン番号を推測または管理するよりも優れています。私は今、プラグインとエージェントのための単一のバージョンを持っています。エージェントとプラグインがバージョン同期を保つことを望みましょう。 – mehmetg

1

したがって、Gradle docによると、jacocoクロージャはjacocoagentバージョンを制御するようにtoolVersionを設定します。

:あなたはそれがトップレベルにあるでしょう、

/** 
* Unzips the resolved {@code org.jacoco.agent.jar} to retrieve the {@code jacocoagent.jar}. 
* 
* @return a file pointing to the {@code jacocoagent.jar} 
*/ 
public File getJar() { 
    if (agentJar == null) { 
     agentJar = project.zipTree(getAgentConf().getSingleFile()).filter(new Spec<File>() { 
      @Override 
      public boolean isSatisfiedBy(File file) { 
       return file.getName().equals("jacocoagent.jar"); 
      } 
     }).getSingleFile(); 
    } 
    return agentJar; 
} 

実際には、あなたはjarファイルをダウンロードした場合(たとえば、org.jacoco.agent-0.7.6.201602180812.jar)と、それを解凍します。ここでは

jacoco { 
    toolVersion = "0.7.6.201602180812" 
} 

jacocoagent.jar解決する gradle source codeです
$ unzip org.jacoco.agent-0.7.6.201602180812.jar 
Archive: org.jacoco.agent-0.7.6.201602180812.jar 
    inflating: META-INF/MANIFEST.MF  
    inflating: META-INF/MTNMINDS.SF  
    inflating: META-INF/MTNMINDS.RSA 
    creating: META-INF/maven/ 
    creating: META-INF/maven/org.jacoco/ 
    creating: META-INF/maven/org.jacoco/org.jacoco.agent/ 
    inflating: META-INF/maven/org.jacoco/org.jacoco.agent/pom.xml 
    inflating: META-INF/maven/org.jacoco/org.jacoco.agent/pom.properties 
    creating: org/ 
    creating: org/jacoco/ 
    creating: org/jacoco/agent/ 
    inflating: jacocoagent.jar   
    inflating: org/jacoco/agent/AgentJar.class 
    inflating: about.html 

これが役立つかどうか教えてください。