eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)
- 作者: 日本XPユーザグループ,長瀬嘉秀
- 出版社/メーカー: 翔泳社
- 発売日: 2001/11
- メディア: 単行本
- クリック: 20回
- この商品を含むブログ (14件) を見る
第7回は、Subversion との連携パート2で、前回の続き。
前回までで、ソースを Subversion リポジトリから更新して、ビルド、テストし、結果をコミットが出来た。
しかし、テスト結果がコミットログに反映されなかったので、テスト結果をコミットログに反映するようにした。
手順
テスト結果を出力したログファイルから、テスト結果を抽出しリポジトリへコミットする Ruby のプログラムを書き、それをテスト後にバッチファイルから実行する。
TestSvnCommiter.rb
class TestSvnCommiter def initialize end def run ok = /(OK*)/ ng = /(!!!FAILURES!!!*)/ @msg = "" @phase = 1 File.readlines( "log.txt" ).each do |f| # phase 1 テスト結果検索 if @phase == 1 then # "OK" か "!!!FAILURES!!!" を見つけたら、以降がテスト結果 if ok =~ f or ng =~ f then puts f @phase = 2 end end # phase 2 テスト結果保存 if @phase == 2 then @msg += f end end # コミットコマンドの作成とコミット @cmd = "\"C:\\Program Files\\VisualSVN Server\\bin\\svn\" commit -m \"" + @msg + "\"" system( @cmd ) end end commiter = TestSvnCommiter.new commiter.run
まとめ
ここまで出来ればとりあえずやることはやったかな。
あとは、ここで見たんだけど(多分 TracLightning に付属の)hudoson とやらが C++ 使えたり、nant 通して Visual Studio 動かせるらしいので、こいつをいじってまたいろいろできればいいと思う。
それにしても Ruby の凄いこと凄いこと。
Ruby いじったのは今回が初めてなんだけど、こんなカンジかな?でテキトーに書いてもちゃんと動く^^
わからないことがあっても、ちょっと調べればすぐに出てくる。
こりゃ流行る訳だわ^^;