ひよっこ。

I want to…

easybを学ぶ0

Posted by hikaruworld : 2010 3月 3

@t_wadaさんがRSpecの入門とその1歩先へ という日記を書いていたので、
Rubyが使えない自分はJavaでeasybを使ったBDD導入の話を備忘録的に書いていこうと思います。

ちなみにマイコミの記事が大変参考になります。多謝。

個人的にはTDDだけじゃなくてBDD+TDDとかSDD+BDD+TDD的な流れになっていけば、
みんなで情報交換できて素敵なのにと思ってたりします。

eclipse上に環境構築(推奨)

easybってなんぞ?というお話はマイコミの記事なりWikipediaを読んでもらうとして、
とりあえずeclipse上に環境構築です。

easybはGroovyという、Java言語を関数的に使えるように拡張された言語で書かれているので、
eclipseさえインストールしておけば基本的にはGroovyとeasybのライブラリにパスを通すだけで、
簡単に動かすことが可能です(コマンドライン,Ant,etc…)。

…可能です、groovyのプラグインをインストールしておかないと、コード補完のないJava的なコードを
書く必要になるので、プラグインをインストールしておきましょう。
(いくら関数型的な記述が可能だからといって、import文を手動でとかはカンベンです)

Groovy-Eclipseのインストール

EclipseのGroovyプラグインGroovy-Eclipse をインストールします。
英語ですが、わかりやすい手順がこのURLにあります。
http://docs.codehaus.org/display/GROOVY/Install+Groovy-Eclipse+Plugin
なお、eclipse3.5か3.4.2以上にする必要があります。

3.4.1だとGroovyプラグインが動かないので注意が必要です。
(私はこれでハマりました)
eclipseのupdatesiteがあるので楽ちんです。
http://dist.springsource.org/release/GRECLIPSE/e3.5/

easybのインストール

ここからダウンロードしたeasyb-0.9.6.tar.gz を解凍してeclipseからパスを通すだけです。
楽チン。
以下の3つがありますが、Groovyプラグインをインストールしている場合は、groovy-1.6.4.jarは不要です。

  • commons-cli-1.2.jar
  • easyb-0.9.6.jar
  • groovy-1.6.4.jar

実行の設定

xDDなので、サクサク実行出来ることが大切です。
簡単に実行出来るように、以下のいずれかの設定を行っておきます。

  1. Runを使ってmainクラスの実行
  2. Ant経由で実行
  3. easybのeclipseプラグインを導入して実行

http://www.easyb.org/running.html

Runを使ってmainクラスの実行

eclipesのRunとして実行できると細かい単位で実行できて便利ですので設定しておきましょう。
0.サンプルプロジェクトとしてこんな感じに作りました。

1.「実行の構成」で設定を行います。

2.Groovyスクリプトを設定します。
「メイン・クラスの検索時にシステム・ライブラリーを組み込む」にチェックを入れて、
「org.easyb.BehaviorRunner」を設定します。

3.引数に実行対象のgroovyファイルを指定します。

以上で設定はOKです。
あとは必要に応じて実行しましょう。
ちなみに実行するとこんな感じでコンソールに出力されます。

Running hello story (HelloStory.groovy)

Scenarios run: 1, Failures: 0, Pending: 1, Time elapsed: 1.489 sec

1 behavior ran (including 1 pending behavior) with no failures

Ant経由で実行

一括実行はやはりAntで。後でHudsonでも設定したりするので、先に確認しておきましょう。
プロジェクトルートにこのような感じのbuild.xmlを作成します。

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="init" basedir=".">
	<target name="init">
		<!-- easybというタスクを登録 -->
		<taskdef name="easyb" classname="org.easyb.ant.BehaviorRunnerTask">
			<classpath id="build.classpath">
				<pathelement location="easyb-0.9.6/commons-cli-1.2.jar"/>
				<pathelement location="easyb-0.9.6/easyb-0.9.6.jar"/>
				<pathelement location="easyb-0.9.6/groovy-1.6.4.jar"/>
			</classpath>
		</taskdef>

		<!-- easybの実行 -->
		<easyb>
			<!-- easybで利用するクラスファイルへパスを通す -->
			<classpath>
				<path refid="build.classpath" />
			</classpath>
			<!-- レポートの出力形式を指定 -->
			<report location="target/story.txt" format="txtstory" />
			<report location="target/story.txt" format="html" />
			<!-- 振る舞いクラスを指定 -->
			<behaviors dir="src">
				<include name="**/*Story.groovy"/>
			</behaviors>
		</easyb>
	</target>
</project>
実行すると以下のようなコンソールログが出力されます。

Buildfile: /Users/***/***/workspace/Sample/build.xml
init:
[easyb] easyb is preparing to process 1 file(s)
[easyb] Running hello story (HelloStory.groovy)
[easyb] Scenarios run: 1, Failures: 0, Pending: 1, Time elapsed: 0.74 sec
[easyb] 1 behavior ran (including 1 pending behavior) with no failures
[easyb] easyb execution passed
BUILD SUCCESSFUL
Total time: 5 seconds

指定したレポート形式で実行結果が出力されます。
今回は割愛しますが、xml形式やprettyprintといった形式で出力することも可能です。

easybのeclipseプラグインを導入して実行

これが一番簡単です。

easyb のサイトにeclipseプラグインとして実行する方法がのっています。
この方法はupdatesiteでインストールできるのでお手軽です。
http://easyb.googlecode.com/svn/trunk/eclipse-plugins/org.easyb.eclipse.updatesite/

easybのeclipseプラグインをインストールすると、「新規」からeasybのファイルを生成出来るようになります。

「story」はStoryDSL、「指定」はBehavior DSLのテンプレートを生成してくれます。
実行に関しては作成したeasybファイルを右クリックして実行することで実行可能です。

実行結果はこんな感じになります。

Running A story (A.story)
Scenarios run: 1, Failures: 0, Pending: 0, Time elapsed: 1.0 sec

1 behavior ran with no failures

今日は環境構築まで。
次は、実際の実施手順に進みます。
以上です。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。