2016-08-16 7 views
3

junit xmlレポートを単一のテストレポートファイルにマージすることができるgradleの方法はありますか?Gradle Merge Junit Report

antでcp-suiteを使用してIntegrationTestSuite.javaを実行すると、単一のjunitレポートが作成されます。グラデーションでは、複数のjunitレポートが作成されます。あなたがあなたの目標を達成するためのAntタスクJUnitReportを使用することができるはずbuild.gradle

task integrationTestSandro(type: Test) { 
    reports.html.enabled = false 
    include '**/IntegrationTestSuite*' 
    reports.junitXml.destination = "$buildDir/test-results/integration" 
    maxHeapSize = testTaskMaxHeapSize 
    jvmArgs testTaskJVMArgs 
} 

答えて

2

から切り取らbuild.xml

<junit> 
    <formatter type="xml" /> 
     <batchtest todir="${testreport.dir}"> 
      <fileset dir="${test-src.dir}"> 
       <include name="**/IntegrationTestSuite.java" /> 
      </fileset> 
     </batchtest> 
</junit> 

から切り取ら

IntegrationTestSuite.java

@RunWith(Categories.class) 
@Categories.IncludeCategory(IntegrationTests.class) 
@Categories.ExcludeCategory(DebugJenkinsTests.class) 
@Suite.SuiteClasses(AllTestSuite.class) 
public class IntegrationTestSuite { /* nop */ 
} 

。以下のようなものが動作するはずです:

configurations { 
    antJUnit 
} 

dependencies { 
    antJUnit 'org.apache.ant:ant-junit:1.9.7' 
} 

task mergeJUnitReports { 
    ext { 
     resultsDir = file("$buildDir/allreports") 
     targetDir = file("$buildDir/test-results/merged") 
    } 

    doLast { 
     ant.taskdef(name: 'junitreport', 
        classname: 'org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator', 
        classpath: configurations.antJUnit.asPath) 

     ant.junitreport(todir: resultsDir) { 
      fileset(dir: resultsDir, includes: 'TEST-*.xml') 
      report(todir: targetDir, format: 'frames') 
     } 
    } 
} 

あなたはGradleのはant-junit依存関係を解決できるようにリポジトリを宣言しなければならないことに注意してください。

関連する問題