Grails 甘特构建脚本,如何检索要执行的任务

Grails 甘特构建脚本,如何检索要执行的任务,grails,code-coverage,task,gant,jacoco,Grails,Code Coverage,Task,Gant,Jacoco,这是在grails中实现的,但我认为grails没有任何特定的功能 我有一个甘特脚本,看起来像这样: includeTargets << grailsScript( "Init" ) includeTargets << grailsScript( "TestApp" ) target(main: "run tests with jacoco code coverage...") { taskdef ( name:'coverage', classname:

这是在grails中实现的,但我认为grails没有任何特定的功能

我有一个甘特脚本,看起来像这样:

includeTargets << grailsScript( "Init" )
includeTargets << grailsScript( "TestApp" )

target(main: "run tests with jacoco code coverage...") {  
     taskdef ( name:'coverage', classname:'org.jacoco.ant.CoverageTask', classpathref:'core.classpath' )
     coverage(*** NEED TO PUT RUN-TESTS TASK HERE ***)
}

setDefaultTarget(main)
我的想法是,我正在尝试使用jacoco代码覆盖率运行一些单元测试。运行测试的目标在TestApp.groovy allTests中定义,可以导入并正常运行,但是来自jacoco的覆盖率任务希望将allTests任务作为子任务添加到其中。它需要包装任务以运行测试。我尝试做的Ant xml等价物是:

<jacoco:coverage>
    <taskToRunTheTests ... >
        < ... setup ... >
    </taskToRunTheTests>
</jacoco:coverage>
所以我想我要寻找的是一种方法,在Gant中,从目标定义中获取任务,并将其传递给覆盖任务,我可以执行coverageTask.addChildtheRunTestsTask。。。如有必要,请执行coverageTask


这是一个晦涩难懂的问题,希望有人能帮我们解决。

我设法让它工作起来,这并不完全回答您的具体问题,而是原始想法;让jacoco在gant构建中生成junit测试的覆盖率。我无法让jacoco:保险有效,所以我和jacoco经纪人一起做了;大概是这样的:

includeTargets << grailsScript( "Init" )
includeTargets << grailsScript( "TestApp" )

target(main: "run tests with jacoco code coverage...") {  
     taskdef ( name:'coverage', classname:'org.jacoco.ant.CoverageTask', classpathref:'core.classpath' )
     coverage(*** NEED TO PUT RUN-TESTS TASK HERE ***)
}

setDefaultTarget(main)
设置代理:

import static groovy.xml.NamespaceBuilder.newInstance as namespace
def jacoco = namespace(ant, 'antlib:org.jacoco.ant')

此时,我们需要将agentvmparam传递给运行junit的JVM

jvmarg(value:"${agentvmparam}")

它工作起来很有魅力。

你有没有找到解决这个问题的办法?我正试图实现完全相同的目标。