这是在 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 的覆盖任务希望将 allTests() 任务作为子任务添加到其中。它需要“包装”任务来运行测试。我正在尝试做的 Ant xml 等效项是这样的:
<jacoco:coverage>
<taskToRunTheTests ... >
< ... setup ... >
</taskToRunTheTests>
</jacoco:coverage>
所以我想我正在寻找的是一种方法,在 Gant 中,从目标定义中获取任务,并将其传递给覆盖任务(我可以做 coverageTask.addChild(theRunTestsTask) ... coverageTask.execute( ) 如有必要)。
这是一个晦涩难懂的问题,希望有人可以帮助我们。