- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#xd18658c]
#contents
*趣旨 [#m9137763]
これは、
テスト用のマシンが与えられていない作業現場
-なおかつ、Gitで管理されている作業現場
-なおかつ、JUnitでテストされている作業現場
-なおかつ、Springを使っている作業現場
-なおかつ、テスト手順が非共有な作業現場
-なおかつ、maven形式のプロジェクト構成
という状況下で、手探りで、テスト環境を構築の模索する、涙と汗の記録である。
一応eclipse上では、すんなりと動作している。
が、なぜかコマンドラインで同じことをやろうとするといろいろ慣れが必要だ。
JUNIT4について技術的なことを知りたい人は、下記のサイトを見たほうが、この
失敗だらけのドキュメントを見るよりはいいかもしれない。
http://www7b.biglobe.ne.jp/~archer/tryjunit4/tryjunit4.html
英語が読めるならば、いっそ、本家のJUnitのサイトのドキュメントを見ればいい
なお、いまのところ、失敗例のみで、実行できていない。使いにくいツールについての考察には使えるのかもしれない。
https://github.com/junit-team/junit/wiki
なお、このドキュメント、いまのところ、失敗例のみで、実行できていない。使いにくいツールについての考察には使えるのかもしれない。
でも、あきらめずに、連れずれなるままに書いていくのであった。
*目標 [#ze36c394]
+ローカルの別フォルダにgitを使って、テスト用に別リポジトリを作成する。
+antでJUnitを実行する
*背景 [#o8c36113]
新しい作業現場に配属され、eclipse上でJUnit実行できるけれども、テストケースが肥大化しいて1時間以上かかるようになってるので、外部のリソースを使わずにローカルで何とか自動テストさせたい。という感じ。
*別フォルダにgitのリポジトリのクローンを作成してみる [#v2f7ea7d]
カレントディレクトリが、eclipseのworkspaceでテスト用のフォルダだとして
make test
cd test
git clone ../テストしたいプロジェクト名
とやると、リポジトリをコピーできた。
*ant [#i78f0c66]
antはお約束の
ant -version
とやって、設定がなされているか確認が必要。
と思ったが、mavenで取り込まれるバージョンが1.7.0どまりなのに対し、今のantのバージョンは1.9.4。
コマンドラインから実行すると、いろいろなバージョンがありますよ。と警告がでて実行されないことになるようだ。
バージョンを1.7.0に戻して再度実行してみると、警告は消えて実行できた。が、今度は、テストケースが何件あるのか見ていない感じがする。1件のErrorを出して停止した。
*build.xmlを生成する [#t272912f]
Javaでコマンドラインで実行するにあたって、面倒くさそうと思うのが、クラスパスの設定だけれども、
eclipseのエクスポートの機能でant用のbuild.xmlを作れた。
このままの名前だと、あとからの自動作成のときにファイル名がかぶるから、ファイル名を修正しておこう。
*antでbuildファイルを指定する [#ta6e0760]
オプションは、よくありがちな -fをつける
ant -f filename
*パーミッションの設定 [#r741d57f]
自分の環境ではパーミッションの設定が必要だった。
*若干の修正 [#k0067f52]
当然クラスパスも含まれているが、相対パスの深さが、テスト用のフォルダだとずれていたりするので、注意する。はじめからあわせておいたほうがよかったかもしれない。
自分の環境ではbuild.xmlのプロパティM2_REPOと、ECLIPSE_HOMEが相対パスだったので調整が必要だった。
*JUNIT4に対応していない? [#iad70b2e]
antがjunit4に対応するのは、1.6.5からだから、大丈夫のはずだが、デフォルトでは、junit3しか対応していない?
*メモリ不足? [#eefd0f7e]
set ANT_OPTS=-Xmx512m
を試みたが、反応なしでした。
Antよ、ここまで、がんばって出来ないのか。。。
*いっそのことANTを使ってコマンドラインでのテストをやめようか。 [#a2eca66b]
既存のごちゃごちゃしたプロジェクトに適用するまえに、シンプルなテストプロジェクトからスタートしたほうが早いんじゃね?
とか思えてきました。
eclipseを使ったクラスパス抽出ツールという位置づけで、build.xml生成を理解しておいて、たとえば、
java org.junit.runner.JUnitCore test.SomeTest
のような感じで実行させることを目標にしたほうがいいと思うようになった。
eclipseでJunitを実行させる際の「実行の構成」を参考にまたいつかがんばろう。
*本家を見てみる [#g95af9e7]
JUnitの本家を見てみることにする。
知りたかった答えがあった。最初から英語はいやだと思わずに、本家を見てみたほうが早かったのかもしれない。
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
これが正しい。というか、JUnit開発した人が使用例とした書き方だ。
antとか関係ないやん。