Copyright 2010 Piece Project, All rights reserved. © - 1 - Piece Project 久保敦啓 http://twitter.com/iteman 松藤秀治 http://twitter.com/matsu_hide Eclipse PDT + MakeGood によるPHPコードのテスト OSC 2010 Kansai@Kobe (2010/3/13)
Copyright 2010 Piece Project, All rights reserved.©- 1 -
Piece Project
久保敦啓 http://twitter.com/iteman 松藤秀治 http://twitter.com/matsu_hide
Eclipse PDT + MakeGoodによるPHPコードのテスト
OSC 2010 Kansai@Kobe (2010/3/13)
Copyright 2010 Piece Project, All rights reserved.©- 2 -
自己紹介
まっつん
松藤 秀治 (まつふじ ひではる)
Piece Project
Eclipseプラグイン
まっつんチャレンジ (ITEMAN Blog)
Copyright 2010 Piece Project, All rights reserved.©- 3 -
アジェンダ
1. Piece Frameworkの活動
2. IDEを使ったPHPのテスト
3. PHP, Eclipseにおけるテスト
4. MakeGoodのご紹介
5. MakeGoodのデモ
Copyright 2010 Piece Project, All rights reserved.©- 4 -
Piece Framework とは?
PHPのアプリケーションフレームワーク
PHPの世界にジェネレーティブプログラミング、DSL, 言語ワークベンチ、言語指向プログラミングを導入することを目的としている
Copyright 2010 Piece Project, All rights reserved.©- 5 -
Piece Frameworkの主なプロダクト
Piece_Unity
Webアプリケーションフレームワーク
Piece_ORM
オブジェクトリレーショナルマッピングフレームワーク
Piece_Right
バリデーションフレームワーク
Piece_Flow
Webフローエンジン
Piece_IDE
Eclipse上に構築されたPiece Frameworkの統合開発環境
Copyright 2010 Piece Project, All rights reserved.©- 6 -
Piece_IDE
Copyright 2010 Piece Project, All rights reserved.©- 7 -
Piece Framework の主なプロダクト
Stagehand_TestRunner
テスト駆動開発のためのテストランナー
MakeGood
Eclipse PDTでテスト駆動開発を行うためのテストランナー
Copyright 2010 Piece Project, All rights reserved.©- 8 -
Stagehand_TestRunner
Copyright 2010 Piece Project, All rights reserved.©- 9 -
今後の計画
「与えられた特定の要求仕様を元に、構成の知識を生かし、再利用可能な基本部分を使って、カスタム化かつ最適化された中間または最終製品を自動的に生成します。」-- 「ジェネレーティブプログラミング」
Copyright 2010 Piece Project, All rights reserved.©- 10 -
今後の計画
ジェネレーティブプログラミング
ドメイン駆動設計 プロダクトライン モデル駆動開発 …DSL, DI, AOP, …
Copyright 2010 Piece Project, All rights reserved.©- 11 -
今後の計画
MakeGood
コンフィギュレーションエンジン
ワークフローエンジン
Eclipseプラグイン
既存のプロダクトのリニューアル
…
Copyright 2010 Piece Project, All rights reserved.©- 12 -
開発に参加するには?(GitHub)
1. パッチ、拡張を適用したいプロダクトをforkする。
2. パッチ、拡張を適用する。
3. pieceアカウントにpull requestを送信する。
Copyright 2010 Piece Project, All rights reserved.©- 13 -
PHPをサポートしているIDE
Zend Studio for Eclipse
NetBeans
IntelliJ IDEA Ultimate Edition
Eclipse PDT
他にも、Delphi for PHP, VS.Phpなどがある。
Copyright 2010 Piece Project, All rights reserved.©- 14 -
Zend Studio for Eclipse
EclipseベースZend FrameworkのサポートIDEでも本命?有償PHPUnit のサポート
Copyright 2010 Piece Project, All rights reserved.©- 15 -
Zend Studio for Eclipse
Copyright 2010 Piece Project, All rights reserved.©- 16 -
NetBeans
symfonyのサポート無償PHPUnit, Seleniumのサポート
Copyright 2010 Piece Project, All rights reserved.©- 17 -
NetBeans
Copyright 2010 Piece Project, All rights reserved.©- 18 -
IntelliJ IDEA Ultimate Edition
有償Web IDE (PhpStorm/WebStorm)PHPUnitのサポート
Copyright 2010 Piece Project, All rights reserved.©- 19 -
IntelliJ IDEA Ultimate Edition
Copyright 2010 Piece Project, All rights reserved.©- 20 -
Eclipse PDT
エディタ、アウトライン実行環境パッケージエクスプローラ無償テストに関するサポートはない
Copyright 2010 Piece Project, All rights reserved.©- 21 -
IDEのテストサポート状況
テスト 無償?
Zend Studio for Eclipse 6.1.2 PHPUnit ×
NetBeans 6.8 PHPUnit ○
IntelliJ IDEA 9.0.1 PHPUnit ×
Eclipse PDT 2.1.1 - ○
MakeGood
Copyright 2010 Piece Project, All rights reserved.©- 22 -
PHPのテスティングフレームワーク
PHPUnit
Sebastian Bergmann
SimpleTest
Marcus Baker, Perrick Penet
Copyright 2010 Piece Project, All rights reserved.©- 23 -
テスティングフレームワークの実行
Eclipse上からこれらのテスティングフレームワークを実行するには?
実行 プラグイン PDTとの連携
PHPUnit ○ ○※ △
SimpleTest ○ ○ ×
※PTI (PHP Tool Integration)
Copyright 2010 Piece Project, All rights reserved.©- 24 -
MakeGood
MakeGoodは、Eclipse PDT上でユニットテストを実行するためのテストランナーを提供します。
MakeGoodは、様々な特徴により テスト駆動開発(TDD: Test Driven Development)を強力にサポートします。
Copyright 2010 Piece Project, All rights reserved.©- 25 -
特徴
パッケージエクスプローラ、PHPエディタからのテストの実行 テストコード プロダクトコードテスト実行時にシステムインクルードパスが使用可能PHPUnit, SimpleTestのサポート
Copyright 2010 Piece Project, All rights reserved.©- 26 -
アーキテクチャ
MakeGood PDT
Stagehand_TestRunner
PHPUnit SimpleTest
拡張
実行
Eclipse
PHP
Copyright 2010 Piece Project, All rights reserved.©- 27 -
メニューからのテストの実行
Copyright 2010 Piece Project, All rights reserved.©- 28 -
テスト成功時の結果ビュー
Copyright 2010 Piece Project, All rights reserved.©- 29 -
テスト失敗時の結果ビュー
Copyright 2010 Piece Project, All rights reserved.©- 30 -
提供を予定している主なフィーチャ
PHPファイルセーブ時のテストの実行
すべてのテストの実行
最初の失敗またはエラーの際の停止
システムインクルードパスの要素に対するコンテントアシスト
Copyright 2010 Piece Project, All rights reserved.©- 31 -
提供を予定している主なフィーチャ
キーバインディングの強化
結果ビューからのPHPファイルのオープン
結果ビューからのクラス、メソッドの作成
Copyright 2010 Piece Project, All rights reserved.©- 32 -
今後の目標
継続的テスティング(Continuous Testing)環境への進化
素早いフィードバック
リファクタリングサポート
さまざまな情報の可視化
Copyright 2010 Piece Project, All rights reserved.©- 33 -
リリースのお知らせ
Twitterやオフィシャルサイト、ITEMAN Blogなどでお知らせします。
是非ご購読をお願いします。
Copyright 2010 Piece Project, All rights reserved.©- 34 -
ご意見、ご要望、パッチ求む
まずは使ってみてください。
ご意見、ご要望、パッチなど、お待ちしております。
Copyright 2010 Piece Project, All rights reserved.©- 35 -
http://twitter.com/piece_framework
Piece Frameworkのニュース
http://twitter.com/iteman
iteman
http://twitter.com/matsu_hide
まっつん
http://twitter.com/kumatch
kumatch
Copyright 2010 Piece Project, All rights reserved.©- 36 -
メーリングリスト、フォーラム
メーリングリスト: Googleグループ Piece Framework Users (ja)
フォーラム: http://redmine.piece-framework.com プロダクトごとに準備中です
Copyright 2010 Piece Project, All rights reserved.©- 37 -
関連サイト
Piece Frameworkオフィシャルサイト http://piece-framework.com/
GitHub http://github.com/piecePiece Frameworkプロダクトページ http://redmine.piece-framework.com/
ITEMAN Blog http://iteman.jp/blog/