Play framework

アプリケーションのテスト

Play!では、JUnit4とSeleniumというテストツールが標準で提供される。それについて。

目次

お約束

テスト用コードの配置

  • テストのためのコードは、testディレクトリ配下に配置する。
  • テストモードで実行しているとき、このディレクトリがソースパスに追加される。

単体テスト

  • JUnitを使用する。

機能テスト

  • JUnitを使用する。
  • 直接コントローラオブジェクトを操作してアプリケーションをテストする。
  • FunctionalTestでFixtureを使う場合、初期データ投入に失敗することがある。これはEntityManagerが初期化さていないことが原因らしい。
    JPAPlugin.startTx(false)、JPAPlugin.closeTx(false)を使って自前トランザクションで挟んでやることで解決する。
    http://ikeike443.hatenablog.com/entry/20101223/p1

Seleniumテスト

  • 自動化されたブラウザでテストを実行し、アプリケーションをテストする。

テストの実行

  • コマンドラインからの場合は、テストコマンド付で動かすことでテストモードとなる。
    > play test [アプリ名]

Eclipseの場合

  • Eclipse上でテストを実行する場合は下記の方法で行う。
  • テストしながらのトレース実行も可能。
  • Eclipseでのテスト実行

自動テストの実行

  • play testでテストすると、対象の選択から実行まで手動で行わなくてはならない。
  • 一連のテストを自動的に行う方法を記す。
  • コマンドラインから下記コマンドを指定して実行する。
    > play auto-test [アプリ名]
  • テスト経過、状況はテキストで表示される。
  • /test-resultディレクトリが作成され、テストの結果(個々のテスト結果やログなど)が出力される。
    • /test-resultディレクトリは、テスト開始時に削除されるので、前回に出力されたファイルは気にしなくてもOK。
    • テストの結果がすべてOKの場合、result.passedという名前で「passed」という内容のファイルが作成される。
    • テストの結果にひとつでもNGがあった場合、result.failedという名前で「failed」という内容のファイルが作成される。
    • 自動ビルドなどでこの機能を利用する場合の判断材料にできる。
  • auto-testコマンドでは HtmlUnitを使用してブラウザでテストが行われる。このブラウザはIE8のように振る舞う。
    参考:リリースノート1.1

参考

http://playdocja.appspot.com/documentation/1.2.3/test
マニュアル、チュートリアルとリファレンス / アプリケーションのテスト

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-12-06 (木) 14:40:47 (2505d)