Java/jcoverage/ServletなどJ2EE環境で使う。
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
#contents
[[クライアントサイドのjcoverage>Java/jcoverage]]に関して...
|BGCOLOR(#CCFFFF):LEFT:プロダクト|BGCOLOR(#CCFFFF):LEFT:...
|LEFT:WebSphere|LEFT:WebSphere 5.0.2テスト環境((Studioに...
|LEFT:Cactus|LEFT:1.7.1|LEFT:サーバサイドテスティングフレ...
|LEFT:Junit|LEFT:3.8.1|LEFT:テスティングフレームワーク|
|LEFT:jcoverage|LEFT:1.0.5|LEFT:カバレッジツール|
[[Cactus>Java/Cactus]]とはサーバサイドのテスティングフレ...
具体的には、requestパラメータにいろいろな値をセットしてブ...
さて、[[前回>Java/jcoverage]]にJUnitとの連携まではやりま...
-クライアント側はクライアント側で、コンテナ側はコンテナ側...
-計測するにはデバッグ埋め込み済みのコードをデプロイする必...
-(特にWASだけかも?)WEBコンテナにjcoverageのjarをパスを通...
難しいのは、デプロイするearにアーカイブされるクラスにどの...
#ref(result.png)
さて例でやってみます。
**準備 [#g4459cec]
WebSphereのテスト環境でjcoverageを使うときにサーバ側でエ...
WebSphereテスト環境 >> 環境 >> WebSphere特定クラスパス
でjcoverage.jarを追加する必要があるみたいです。Tomcatなど...
#ref(serversettiong.png)
**手順 [#oa26c415]
手順は、
- Eclipseでコンパイル
- AntでInstrument
- WEBコンテナ起動
- EclipseでCactus起動
- Antでレポート
となります。ポイントは''デフォルトではclassesがクラスパス...
*** プロジェクト作成 [#y4bf2953]
プロジェクト名はJCoverageTestWebとしました。CVSは[[こちら...
*** Eclipseでコンパイル [#rb770184]
今回はAntではなくEclipse上のビルドを用いました。Antでやる...
<!-- 環境依存ファイルの読み込み-->
<!-- 実際にファイルを参照してみてください -->
<property file="build.win.properties" />
<property file="build.properties" />
<!-- クラスパス -->
<path id="project.class.path">
<pathelement location="${j2ee.jar}" />
<pathelement path="${document.root}/${class.dir}" />
<fileset dir="${document.root}/${jar.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- クラスパス名の定義 以上 -->
<taskdef classpathref="project.class.path" resource="tas...
<target name="init">
<tstamp>
<format property="TODAY" pattern="yyyy/MM/dd" />
</tstamp>
<filter token="project.name" value="${ant.project.name...
<echo>${ant.version}</echo>
<echo>Java ver. ${ant.java.version}</echo>
<echo>${ant.project.name}</echo>
<echo>BaseDir: ${basedir}</echo>
<echo>日付:${TODAY}</echo>
</target>
<!-- コンパイル -->
<target name="javac.src" depends="init" description="ソ...
<mkdir dir="${document.root}/${class.dir}" />
<copy todir="${document.root}/${class.dir}" preservela...
<fileset dir="${src.dir}">
<include name="**" />
<exclude name="**/**.java" />
</fileset>
</copy>
<javac srcdir="${src.dir}" destdir="${document.root}/$...
encoding="${compile.encoding}"
includeantruntime="no" memoryInitialSize="256M" fork...
includes="**" debug="true">
<classpath refid="project.class.path" />
</javac>
</target>
<!-- テストクラスのコンパイル -->
<target name="test.javac" depends="javac.src" descriptio...
<mkdir dir="${document.root}/${class.dir}" />
<copy todir="${document.root}/${class.dir}" preservela...
<fileset dir="${test.src.dir}">
<include name="**" />
<exclude name="**/**.java" />
</fileset>
</copy>
<javac srcdir="${test.src.dir}" destdir="${document.ro...
encoding="${compile.encoding}"
memoryInitialSize="256M" fork="yes" memoryMaximumSiz...
<classpath refid="project.class.path" />
</javac>
</target>
*** AntでInstrument [#se61130a]
Instrumentはクライアント環境だけの場合もほとんど同じ。
<target name="instrument" description="Add jcoverage ins...
<instrument todir="${document.root}/${class.instrumented...
<ignore regex="org.apache.log4j.*" />
<fileset dir="${document.root}/${class.dir}">
<include name="**/*.class" />
</fileset>
<classpath refid="project.class.path" />
</instrument>
<copy todir="${document.root}/${class.instrumented.dir}"...
<fileset dir="${document.root}/${class.dir}">
<include name="**" />
<exclude name="**/*.class" />
</fileset>
</copy>
<delete dir="${document.root}/${class.dir}" />
<mkdir dir="${document.root}/${class.dir}" />
<copy todir="${document.root}/${class.dir}" preservelast...
<fileset dir="${document.root}/${class.instrumented.dir}">
<include name="**" />
</fileset>
</copy>
<delete>
<fileset dir="${ser.output.dir}">
<include name="jcoverage.ser" />
</fileset>
</delete>
<copy file="jcoverage.ser" todir="${ser.output.dir}" />
</target>
ちとダサいんですが、Eclipseがコンパイルしたクラスがあるデ...
あと、一点だけ異なるのがコンテナ上でもカバレッジを計測す...
${ser.output.dir}
です。実体はbuild.propertiesに記述してあって、うちの環境...
ser.output.dir=D:/IBM/Rational/SDP/6.0
となっています。ちなみにbuild.propertiesはこんな感じにな...
[[build.properties:http://www.masatom.in/cgi-bin/viewvc.c...
そもそもクライアントVMもコンテナのVMも同じディレクトリに...
***WEBコンテナ起動 [#w844263f]
ここでWEBコンテナを起動します。ここでビルドがかかっちゃう...
***EclipseでCactus起動 [#bedad78b]
いつもEclipseでCactusを起動するのと変わりません。これで、...
***Antでレポート [#w6b33aeb]
WEBコンテナを落とした時点で、
-クライアントVM上のクラスが出力したjcoverage.ser(プロジェ...
-WEBコンテナのVM上のクラスが出力したjcoverage.ser(WEBコン...
が存在することになります。最後にそれぞれのファイルをマー...
<target name="coverage" >
<report srcdir="${src.dir}" destdir="${build.coverage....
<classpath refid="project.class.path" />
</report>
<report srcdir="${src.dir}" destdir="${build.coverage....
<classpath refid="project.class.path" />
</report>
</target>
<target name="merge" >
<delete file="jcoverage_server.ser" />
<copy file="${ser.output.dir}/jcoverage.ser" tofile="j...
<merge>
<fileset file="jcoverage*.ser">
</fileset>
</merge>
</target>
これを実行((ant merge coverage))すると、プロジェクトルー...
----
この記事は
#vote(おもしろかった[22],そうでもない[4])
-Tomcatでうごかねー。。カバレッジ計測まではできてるっぽい...
-tomcat/binにおいたjcoverage.serはshutdownで0バイトになっ...
- VM引数に -Dcom.jcoverage.instrumentation.interval=5 ...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
#contents
[[クライアントサイドのjcoverage>Java/jcoverage]]に関して...
|BGCOLOR(#CCFFFF):LEFT:プロダクト|BGCOLOR(#CCFFFF):LEFT:...
|LEFT:WebSphere|LEFT:WebSphere 5.0.2テスト環境((Studioに...
|LEFT:Cactus|LEFT:1.7.1|LEFT:サーバサイドテスティングフレ...
|LEFT:Junit|LEFT:3.8.1|LEFT:テスティングフレームワーク|
|LEFT:jcoverage|LEFT:1.0.5|LEFT:カバレッジツール|
[[Cactus>Java/Cactus]]とはサーバサイドのテスティングフレ...
具体的には、requestパラメータにいろいろな値をセットしてブ...
さて、[[前回>Java/jcoverage]]にJUnitとの連携まではやりま...
-クライアント側はクライアント側で、コンテナ側はコンテナ側...
-計測するにはデバッグ埋め込み済みのコードをデプロイする必...
-(特にWASだけかも?)WEBコンテナにjcoverageのjarをパスを通...
難しいのは、デプロイするearにアーカイブされるクラスにどの...
#ref(result.png)
さて例でやってみます。
**準備 [#g4459cec]
WebSphereのテスト環境でjcoverageを使うときにサーバ側でエ...
WebSphereテスト環境 >> 環境 >> WebSphere特定クラスパス
でjcoverage.jarを追加する必要があるみたいです。Tomcatなど...
#ref(serversettiong.png)
**手順 [#oa26c415]
手順は、
- Eclipseでコンパイル
- AntでInstrument
- WEBコンテナ起動
- EclipseでCactus起動
- Antでレポート
となります。ポイントは''デフォルトではclassesがクラスパス...
*** プロジェクト作成 [#y4bf2953]
プロジェクト名はJCoverageTestWebとしました。CVSは[[こちら...
*** Eclipseでコンパイル [#rb770184]
今回はAntではなくEclipse上のビルドを用いました。Antでやる...
<!-- 環境依存ファイルの読み込み-->
<!-- 実際にファイルを参照してみてください -->
<property file="build.win.properties" />
<property file="build.properties" />
<!-- クラスパス -->
<path id="project.class.path">
<pathelement location="${j2ee.jar}" />
<pathelement path="${document.root}/${class.dir}" />
<fileset dir="${document.root}/${jar.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- クラスパス名の定義 以上 -->
<taskdef classpathref="project.class.path" resource="tas...
<target name="init">
<tstamp>
<format property="TODAY" pattern="yyyy/MM/dd" />
</tstamp>
<filter token="project.name" value="${ant.project.name...
<echo>${ant.version}</echo>
<echo>Java ver. ${ant.java.version}</echo>
<echo>${ant.project.name}</echo>
<echo>BaseDir: ${basedir}</echo>
<echo>日付:${TODAY}</echo>
</target>
<!-- コンパイル -->
<target name="javac.src" depends="init" description="ソ...
<mkdir dir="${document.root}/${class.dir}" />
<copy todir="${document.root}/${class.dir}" preservela...
<fileset dir="${src.dir}">
<include name="**" />
<exclude name="**/**.java" />
</fileset>
</copy>
<javac srcdir="${src.dir}" destdir="${document.root}/$...
encoding="${compile.encoding}"
includeantruntime="no" memoryInitialSize="256M" fork...
includes="**" debug="true">
<classpath refid="project.class.path" />
</javac>
</target>
<!-- テストクラスのコンパイル -->
<target name="test.javac" depends="javac.src" descriptio...
<mkdir dir="${document.root}/${class.dir}" />
<copy todir="${document.root}/${class.dir}" preservela...
<fileset dir="${test.src.dir}">
<include name="**" />
<exclude name="**/**.java" />
</fileset>
</copy>
<javac srcdir="${test.src.dir}" destdir="${document.ro...
encoding="${compile.encoding}"
memoryInitialSize="256M" fork="yes" memoryMaximumSiz...
<classpath refid="project.class.path" />
</javac>
</target>
*** AntでInstrument [#se61130a]
Instrumentはクライアント環境だけの場合もほとんど同じ。
<target name="instrument" description="Add jcoverage ins...
<instrument todir="${document.root}/${class.instrumented...
<ignore regex="org.apache.log4j.*" />
<fileset dir="${document.root}/${class.dir}">
<include name="**/*.class" />
</fileset>
<classpath refid="project.class.path" />
</instrument>
<copy todir="${document.root}/${class.instrumented.dir}"...
<fileset dir="${document.root}/${class.dir}">
<include name="**" />
<exclude name="**/*.class" />
</fileset>
</copy>
<delete dir="${document.root}/${class.dir}" />
<mkdir dir="${document.root}/${class.dir}" />
<copy todir="${document.root}/${class.dir}" preservelast...
<fileset dir="${document.root}/${class.instrumented.dir}">
<include name="**" />
</fileset>
</copy>
<delete>
<fileset dir="${ser.output.dir}">
<include name="jcoverage.ser" />
</fileset>
</delete>
<copy file="jcoverage.ser" todir="${ser.output.dir}" />
</target>
ちとダサいんですが、Eclipseがコンパイルしたクラスがあるデ...
あと、一点だけ異なるのがコンテナ上でもカバレッジを計測す...
${ser.output.dir}
です。実体はbuild.propertiesに記述してあって、うちの環境...
ser.output.dir=D:/IBM/Rational/SDP/6.0
となっています。ちなみにbuild.propertiesはこんな感じにな...
[[build.properties:http://www.masatom.in/cgi-bin/viewvc.c...
そもそもクライアントVMもコンテナのVMも同じディレクトリに...
***WEBコンテナ起動 [#w844263f]
ここでWEBコンテナを起動します。ここでビルドがかかっちゃう...
***EclipseでCactus起動 [#bedad78b]
いつもEclipseでCactusを起動するのと変わりません。これで、...
***Antでレポート [#w6b33aeb]
WEBコンテナを落とした時点で、
-クライアントVM上のクラスが出力したjcoverage.ser(プロジェ...
-WEBコンテナのVM上のクラスが出力したjcoverage.ser(WEBコン...
が存在することになります。最後にそれぞれのファイルをマー...
<target name="coverage" >
<report srcdir="${src.dir}" destdir="${build.coverage....
<classpath refid="project.class.path" />
</report>
<report srcdir="${src.dir}" destdir="${build.coverage....
<classpath refid="project.class.path" />
</report>
</target>
<target name="merge" >
<delete file="jcoverage_server.ser" />
<copy file="${ser.output.dir}/jcoverage.ser" tofile="j...
<merge>
<fileset file="jcoverage*.ser">
</fileset>
</merge>
</target>
これを実行((ant merge coverage))すると、プロジェクトルー...
----
この記事は
#vote(おもしろかった[22],そうでもない[4])
-Tomcatでうごかねー。。カバレッジ計測まではできてるっぽい...
-tomcat/binにおいたjcoverage.serはshutdownで0バイトになっ...
- VM引数に -Dcom.jcoverage.instrumentation.interval=5 ...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: