メモの日々


2009年02月03日(火) [長年日記]

  • 初めてLinuxでVMWare Playerを使ったが、設定方法がよく分からない。Windowsだとvmnetcfg.exeでネットワークの設定ができるけど、Linuxだとどうすればいいのか。

[java] Cobertura でカバレッジを測定した

昨日のJMockitでは十分な結果を得られなかったので、Coberturaを使ってみることにした。こちらは素直に動いた。

インストール

Cobertura 1.9のアーカイブをダウンロードして展開するとトップディレクトリに cobertura.jar というファイルがあり、libディレクトリにもいくつかjarファイルがある。これら全てをクラスパスに含めれば使用できる。

Antに組み込んでカバレッジを測る

junitタスクを既に使っているとして、その前に cobertura-instrument タスクを実行し、junitタスクが完了したら cobertura-report タスクを実行すればいい。次のような感じ。ドキュメントにある通りにすればよい。

    <target name="coverage" depends="...">
        <delete file="cobertura.ser" /> <!-- 削除が必要みたい -->

        <path id="cobertura.classpath">
            <fileset dir="...">
                <include name="cobertura.jar"/>
                <include name="lib/**/*.jar"/>
            </fileset>
        </path>
        <taskdef classpathref="cobertura.classpath"
                 resource="tasks.properties"/>

        <cobertura-instrument todir="...">
            <fileset dir="..." includes="**/*.class"/>
        </cobertura-instrument>

        <junit fork="yes">
            <formatter type="plain" usefile="no"/>
            <classpath>
                <pathelement location="..."/>
                <pathelement location="..."/>
                <pathelement location="..."/>
            </classpath>
            <batchtest fork="yes">
                <fileset dir="...">
                    <include name="**/*Test.java"/>
                </fileset>
            </batchtest>
        </junit>

        <cobertura-report destdir="...">
            <fileset dir="nantoka/src/src" includes="**/*.java"/>
            <fileset dir="kantoka/src" includes="**/*.java"/>
        </cobertura-report>
    </target>