在gradle html报告中集成ant junit生成的测试结果

时间:2014-01-31 19:32:14

标签: gradle build.gradle

在我的gradle构建脚本中,我添加了doLast方法来测试任务以运行ant.junit任务以从几个jar文件执行测试。

    test <<  {
      //run ant junit task with reports stored in $buildDir/test-results

      //after ant junit completion and "test" task completion, 
      //how can I get the gradle generated html report include the above test-results?    
    }

如何增强此任务以获得gradle html报告的好处?我看到ant junit test xml报告正在$ buildDir / test-results中与其他“gradle test”创建的xmls一起正确创建。但是$ buildDir / reports / tests“只包含。我希望gradle也会获取ant junit创建的测试结果xml文件,并包含在其html报告中。但这不会发生。我怎么能得到这种行为?” / p>

我尝试创建另一个TestReport类型的任务。但它也没有帮助。

 task runTestsFromJar( type: TestReport ) {
        destinationDir=file("$buildDir/reports/tests")
        reportOn tasks.test, files("$buildDir/test-results/binary/test")
 }

我正在使用gradle 1.8。

2 个答案:

答案 0 :(得分:1)

我建议创建另一个task of type Test来替换你的doAfter闭包。

task antTests(type: Test){
  //configuration here
}

我相信您可以使用与之前尝试类似的方式使用TestReport任务

task runTestsFromJar( type: TestReport ) {
    destinationDir=file("$buildDir/reports/tests")
    reportOn test, antTests
}

我尝试基于现有xml结果文件的目录以及binary子文件夹生成报告的尝试也不成功

答案 1 :(得分:1)

根据来自gradle forum post的回复,似乎生成gradle样式的测试html报告无法通过gradle开箱即用。 Gradle TestReport任务似乎依赖于“test”任务生成的二进制输出文件。使用gradle中的ant.JUnitTask运行测试时,不会生成这些。 我最终使用“ant JUnitReport任务”来生成至少一个有意义的综合报告。

test <<  {
  //run ant junit task with reports stored in $buildDir/test-results

  //after ant junit completion  
   ant.junitReport( toDir: "$buildDir/reports") {
            fileset ( dir:"$buildDir/test-results" )
            report ( format:"frames", todir:"$buildDir/reports" )
   }
}

这提供了一个基本的HTML报告。可以根据需要使用XSLT进行自定义。