|
antでdjUnitを使うhttp://works.dgic.co.jp/djwiki/Viewpage.do?pid=@616E74E381A7646A556E6974E38292E4BDBFE38186Encoding:UTF-8 / Locale:en_US / PageStatus: Frozen Owner of this page:d.Dev |
antでdjUnitを使うdjUnitをantで使用する方法です。 基本的にはJCoverageをantで使用する方法とほぼ同じです。(ant編へ) ただ、build.xmlに少し修正が必要です。
djunit-instrumentタグ Λdjunit-instrumentタグは、JCoverageのinstrumentタグの代替となるタグです。 従来のJCoverageの「instrument」を「djunit-instrument」に置き換えて使用できます。 ただし、djunit-instrumentでは、VirtualMockObjectsに対応するため、独自の属性が追加されています。
これらの属性を設定することで、VirtualMockObjectsを利用可能です。 [注意] 以下はdjUnitを使用する場合のbuild.xmlの例です。 修正する場合に参考にしてください。
<?xml version="1.0" encoding="Windows-31J"?>
<project name="djwiki_test" basedir="." default="report">
<!-- ========== PROPERTIES ========== -->
<!-- <property file="build.properties" /> -->
<!-- Source Directory -->
<property name="djunit.src.dir" value="D:\eclipse\workspace\Wiki\src" />
<property name="djunit.test.src.dir" value="D:\eclipse_2.1.2\workspace\dJWiki Test\src" />
<!-- Build Directory -->
<property name="djunit.build.dir" value="D:\eclipse\workspace\Wiki\WEB-INF\classes" />
<property name="djunit.test.build.dir" value="D:\eclipse_2.1.2\workspace\dJWiki Test\classes" />
<!-- JUnit Report Directory -->
<property name="junit.report.dir" value="D:\eclipse_2.1.2\workspace\dJWiki Test\junitreport" />
<property name="junit.work.dir" value="D:\eclipse_2.1.2\workspace\dJWiki Test\junitwork" />
<!-- JCoverage Directory -->
<property name="jcoverage.work.dir" value="D:\eclipse_2.1.2\workspace\dJWiki Test\jcoveragework" />
<property name="jcoverage.work.classes" value="${jcoverage.work.dir}\classes" />
<property name="jcoverage.work.src" value="${jcoverage.work.dir}\src" />
<property name="jcoverage.report.dir" value="D:\eclipse_2.1.2\workspace\dJWiki Test\jcoveragereport" />
<!-- JCoverage Task Def -->
<taskdef classpath="D:\com.jcoverage_1.0.5\jcoverage.jar" resource="tasks.properties" />
<!--
***********************************************************************************************
djUnit TaskDefを記述する。
"classpath"はdjunit.jarへのパス、"resource"はdjunittasks.propertiesを指定。
***********************************************************************************************
-->
<!-- djUnit Task Def -->
<taskdef classpath="D:\eclipse_2.1.2\plugins\jp.co.dgic.eclipse.jdt.djunit_0.3.1\djunit.jar" resource="djunittasks.properties" />
<!-- ========== CLASSPATH ========== -->
<path id="project.class.path">
<fileset dir="D:\eclipse\workspace\Wiki\WEB-INF\lib">
<include name="**/*.jar" />
</fileset>
<path path="${djunit.build.dir}" />
</path>
<path id="test.project.class.path">
<path path="${djunit.build.dir}" />
<path path="D:\eclipse_2.1.2\plugins\jp.co.dgic.eclipse.jdt.djunit_0.3.1\djunit.jar" />
<!--
***********************************************************************************************
djUnitプラグインのフォルダの「lib」内にあるjarファイルにパスを通す。
具体的には「javassist.jar」が必要なため。
***********************************************************************************************
-->
<fileset dir="D:\eclipse_2.1.2\plugins\jp.co.dgic.eclipse.jdt.djunit_0.3.1\lib">
<include name="**/*.jar" />
</fileset>
</path>
<!-- ========== CLEAN ========== -->
<target name="clean.jcoverage.report">
<delete dir="${jcoverage.work.classes}" />
<mkdir dir="${jcoverage.work.classes}" />
<delete dir="${jcoverage.work.src}" />
<mkdir dir="${jcoverage.work.src}" />
<delete>
<fileset dir="." includes="**/jcoverage.ser" />
</delete>
</target>
<!-- ========== TEST ========== -->
<target name="run.test" depends="prepare.jcoverage">
<delete dir="${junit.work.dir}" />
<mkdir dir="${junit.work.dir}" />
<delete dir="${junit.report.dir}" />
<mkdir dir="${junit.report.dir}" />
<junit printsummary="yes" fork="yes" dir="D:\eclipse_2.1.2\workspace\dJWiki Test">
<classpath location="D:\com.jcoverage_1.0.5\jcoverage-main.jar" />
<classpath location="${jcoverage.work.classes}" />
<classpath refid="project.class.path" />
<classpath refid="test.project.class.path" />
<classpath location="${djunit.test.build.dir}" />
<formatter type="xml" />
<batchtest todir="${junit.work.dir}">
<fileset dir="${djunit.test.build.dir}">
<include name="**/*.class" />
</fileset>
</batchtest>
</junit>
<junitreport>
<fileset dir="${junit.work.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${junit.report.dir}" />
</junitreport>
</target>
<!-- ========== JCOVERAGE ========== -->
<target name="prepare.jcoverage" depends="clean.jcoverage.report">
<!--
***********************************************************************************************
JCoverageを使用する際の"instrument"の代わりに、djUnitは"djUnit-instrument"を記述する。
なお、オプションに"virtualmock=yes/no"があり、virtualmockの使用可否を指定出来る
***********************************************************************************************
-->
<djunit-instrument todir="${jcoverage.work.classes}" virtualmock="yes">
<classpath location="D:\com.jcoverage_1.0.5\jcoverage-main.jar" />
<classpath refid="test.project.class.path" />
<classpath refid="project.class.path" />
<fileset dir="${djunit.build.dir}">
<include name="**/*.class" />
<exclude name="**/filters/**/*.class"/>
<exclude name="**/plugin/**/*.class"/>
<exclude name="**/wiki/tag/**/*.class"/>
<exclude name="**/wiki/transformer/**/*.class"/>
</fileset>
</djunit-instrument>
</target>
<target name="report.jcoverage" depends="run.test">
<merge>
<classpath location="D:\com.jcoverage_1.0.5\jcoverage-main.jar" />
<fileset dir=".">
<include name="**/jcoverage.ser" />
</fileset>
</merge>
<copy todir="${jcoverage.work.src}">
<fileset dir="${djunit.src.dir}">
<include name="**/*.java" />
</fileset>
</copy>
<delete dir="${jcoverage.report.dir}" />
<mkdir dir="${jcoverage.report.dir}" />
<report srcdir="${jcoverage.work.src}" destdir="${jcoverage.report.dir}">
<classpath location="D:\com.jcoverage_1.0.5\jcoverage-main.jar" />
<classpath refid="test.project.class.path" />
</report>
</target>
<target name="report" depends="report.jcoverage">
<delete dir="${jcoverage.work.dir}" />
<delete>
<fileset dir="." includes="**/jcoverage.ser" />
</delete>
<delete dir="${junit.work.dir}" />
<delete>
<fileset dir="." includes="**/TESTS*.xml" />
<fileset dir="." includes="**/Test*.log" />
</delete>
</target>
</project>
|