Facebook Twitter Google Maps RSS
Home 未分類 behat導入と基礎
formats

behat導入と基礎

こんにちは!

駆け出しプログラマー安東です。

今回は最近現場で使ったテストツール「behat」について書きます!

■Behatとは

・PHP用のBDDフレームワーク
・Gherkin
・内部的にはsymfony2で作成されている
 symfony2との親和性が高い
 symfony2系以外のFWでも利用可能

■behatのダウンロード

まず適当なディレクトリにbehatをダウンロード!
※今回は事前にbehatディレクトリを作成し、そこにダウロードします。

composerを使ってダウンロードしましょう。
behatディレクトリで以下コマンドを実行しましょう。

#curl -sS https://getcomposer.org/installer | php
#php composer.phar require –dev behat/behat=’~3.0.4′

上記コマンドでbehatのダウンロードが完了です。
ダウンロードできると以下のディレクトリが構成されています。

behat/
 vendor/
  bin/
   behat/
 composer.json
 composer.lock
 composer.phar

■behatの実行環境構築

上記ディレクトリ構造配下にappディレクトリを作成します。

#mkdir app

behat/
 vendor/
  bin/
   behat/
 composer.json
 composer.lock
 composer.phar
 app/

appディレクトリで下記コマンドを実行

#../vendor/bin/behat –init

上記コマンドを実行すると以下のようなファイルが設置されます。

 vendor/
  bin/
   behat/
 composer.json
 composer.lock
 composer.phar
 app/
  features/
   booststrap/
    FeatureContext.php

■behat.ymlの準備

behatでは実行のための設定ファイルをbehat.ymlに記述します。
今回はappディレクトリにbehat.ymlを作成します。

#touch behat.yml

 vendor/
  bin/
   behat/
 composer.json
 composer.lock
 composer.phar
 app/
  behat.yml: 作成した設定ファイル
  features/
   booststrap/
    FeatureContext.php

behat.ymlに以下のように記述

**~behat.yml~**

※%paths.base% : 実行ディレクトリを指している

1.autoloadを指定して、bootstrap配下のFeatureContext.phpを読み込む
2.suitesを用いて記述します。
  suitesを使用することで、pathsとcontextsを名前(今はdefault)をつけて管理することが可能
3.pathsは「.feature」ファイルがあるディレクトリまでのパスを記述
4.contextsでautoloadで読み込んだFeatureContext.phpファイルのクラスを指定

■テストケースの作成

テストはbehat.ymlのpathに指定したディレクトリ以下に作成していきます。
テストファイルの拡張子はfeatureにする。

#touch test.feature

 vendor/
  bin/
   behat/
 composer.json
 composer.lock
 composer.phar
 app/
  behat.yml: 作成した設定ファイル
  features/
   test.feature:作成したテストケース
   booststrap/
    FeatureContext.php

**~test.feature~**

「#Language:en」で言語を指定しています。

■behatの実行

この状態でbehatの実行をしてみましょう。
appディレクトリまで移動して、下記コマンドで実行できます。

#../vendor/bin/behat

長くなりましたが、
以上で簡単ですが、behatの導入と基礎でした!

テストケースを日本語でも書けるのが魅力ですが、
やはり英語で記述したほうが良いのかな。。。

ではこのへんで(∩´∀`)∩

【番外編】

behatにライブラリを導入し、
簡単なブラウザテストを実行してみます。

まず、composer.jsonに下記項目を追加します。

“require-dev”: {
 ”behat/mink”: “1.*”,
 ”behat/mink-extension”: “*”,
 ”behat/mink-selenium2-driver”: “*”,
}

そして、phantomjsをインストールしておいてください!

これで準備は完了です。
まず、phantomjsを起動しましょう。
下記コマンドを実行します。

$phantomjs -webdriver=4444

次にbehat.ymlを編集します。

次にFeatureContextクラスでMinkExtensionを継承します。

最後にtest.featureファイルを編集します。

これで完了です。

これを実行すると下記画像のようになるはずです。

これはほんの一例ですが、このような形でブラウザテストをすることが可能です。

MinkExtensionにテストケースがたくさん準備されているので、
それらを用いて様々なテストを実行することが可能だと思います。

以上
番外編でした!!


ECサイト構築はこちら


ホームページ製作はこちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*