2011-12-23 6 views
2

私はデフォルトCoberturaの楽器では..ビルド内のすべてのクラスをコードカバレッジのためのCoberturaのの動作をカスタマイズしようとしていますが、私は次のように一般的に見える特定のXML読みたい:私は読みたいCoberturaをカスタマイズするためのAntスクリプトのGroovyタスク?

<include> 
    .... 
    <targetclass name = "com.example.ExMain"> 
     <method name = "helloWorld" returnType="String"> 
    </target> 
    .... 
</include> 

をそのようなxmlは外部ソースから提供され、上記のxmlで指定されたクラスのみを計測するようにCoberturaをカスタマイズします。これについてはgroovyスクリプトを作成しましたが、今度はgroovyスクリプトをAntビルドスクリプトにフックする必要がありますCobertura ..

これは、Coberturaが実際にクラスを計測するantセクションの部分です。上記のセクションでは、私は明示的に私のスクリプトに引っ掛けることができるようにCoberturaののインストルメンテーションを除外したこと

... 
<cobertura-instrument todir="${instrumented.dir}"> 
    <ignore regex="org.apache.log4j.*" /> 
    <fileset dir="${classes.dir}"> 
    <exclude name="**/*.class" />//Custom change         
    </fileset>    
</cobertura-instrument> 
... 

注..

はどうやらファイルセットは、私はその中にグルーヴィーなタスクを含めることはできません。カスタムスクリプトを呼び出してxmlを読み込みます。groovyタスクを外に置くと、何らかの形でレポートが生成されません。したがって、カスタムを含めるためにファイルセット内のgroovyスクリプトを呼び出す以外の方法はありませんどのようにこれを行うことができますか?

答えて

0

別のGroovyブロックに1つ以上のプロパティを設定し、それらをcobertura設定で参照できるようにする必要があります。この簡単な例は、GroovyコードスニペットからAntプロパティを設定する方法を示しています。

<project name="MyProject" default="dist" basedir="."> 
<description> 
    simple example build file 
</description> 

<path id="groovyPath"> 
    <pathelement location="lib/groovy-all-1.8.6.jar"/> 
</path> 

<taskdef name="groovy" 
     classname="org.codehaus.groovy.ant.Groovy" 
     classpathref="groovyPath"/> 
<target name="loadXml"> 
    <groovy> 
     properties.parsedXml = 'some pattern that can be used to configure a task' 
    </groovy> 
</target> 

<target name="configureTask" depends="loadXml"> 
    <echo message="${parsedXml}"/> 
</target> 

関連する問題