2011-01-28 2 views
1

이것은 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() 태스크에 하위 작업으로 추가하려고합니다. 테스트를 실행하려면 태스크를 "랩"해야합니다. 내가 할 노력하고있어에 대한 개미 XML에 해당이 있습니다 :

<jacoco:coverage> 
    <taskToRunTheTests ... > 
     < ... setup ... > 
    </taskToRunTheTests> 
</jacoco:coverage> 

그래서 나는 내가 무엇을 찾고 있어요 것은 겐트의 방법, 대상 정의에서 작업을 얻고, 그것을 전달하는 것 같아요 (나는 필요한 경우 coverageTask.addChild (theRunTestsTask) ... coverageTask.execute()를 수행 할 수있다).

이것은 분명하지 않습니다. 누군가가 우리에게 도움을 줄 수 있기를 바랍니다.

+0

아마도이 문제에 대한 해결책을 찾았습니까? 나는 정확히 같은 것을 성취하려고 노력하고있다. – abalogh

답변

0

나는 그것을 작동시킬 수 있었지만, 이것은 당신의 특정한 질문에 대한 대답이 아니라 원래의 생각에 정확하게 부합한다; gant 빌드 내에서 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') 

을 ...

이 시점에서 우리는 JVM에 agentvmparam을 통과해야

실행 junit;

jvmarg(value:"${agentvmparam}") 

그리고 그것은 매력처럼 작동합니다.

관련 문제