2011-01-28 8 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()タスクが必要です。テストを実行するためにタスクを「ラップする」必要があります。だから私は、ターゲット定義からタスクを取得するには、ガントでは、どのような私が探していることの方法だと思いますし、それを渡す

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

:私がやろうとしている何のためのAntのXML同等のはこれですカバレッジタスクに沿って(私はカバレッジを行うことができます.Task.addChild(theRunTestsTask)... coverageTask.execute()

これはあいまいなものです。誰かが私たちに助けてくれることを願っています。

+0

おそらくこの問題の解決策を見つけましたか?私はまったく同じことを達成しようとしています。 – abalogh

答えて

0

私はそれがうまくいくように管理しましたが、これはあなたの特定の質問に正確には当てられませんが、元の考えです。ガントビルドの中でjunitテストにジャココが作成したカバレッジを持つこと。私はジャココを手に入れることができませんでした。

は、エージェントの設定:このような何か

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を渡す必要がありますランニングジュニット;

jvmarg(value:"${agentvmparam}") 

それは魅力的です。

関連する問題