Gant构建脚本,如何检索我想要执行的任务

这是grails,但我不认为任何特定于grails的内容都适用。 我有一个看起来像这样的Gant脚本:
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的coverage任务希望将allTests()任务添加到子任务中。它需要“包装”任务来运行测试。我正在尝试做的Ant xml等价物是这样的:
<jacoco:coverage>
    <taskToRunTheTests ... >
        < ... setup ... >
    </taskToRunTheTests>
</jacoco:coverage>
所以我想我正在寻找的是在Gant中从目标定义中获取任务的方法,并将其传递给coverage任务(我可以执行coverageTask.addChild(theRunTestsTask)... coverageTask.execute( )如有必要)。 这是一个不起眼的,希望有人可以帮助我们。     
已邀请:
我设法让它工作,这不完全回答你的具体问题,但最初的想法;在jant build中进行jacoco生产的junit测试覆盖。我无法得到jacoco:覆盖工作,所以我用jacoco代理做了;这样的事情: 设置代理:
import static groovy.xml.NamespaceBuilder.newInstance as namespace
def jacoco = namespace(ant, 'antlib:org.jacoco.ant')
...
jacoco.agent(property: 'agentvmparam', destfile: "$dirs.projDir\target\jacoco.exec", includes: '*', output: 'file', dumponexit: 'true')
... 此时我们需要将
agentvmparam
传递给运行junit的JVM;
jvmarg(value:"${agentvmparam}")
它的工作就像一个魅力。     

要回复问题请先登录注册