Codeception-プロジェクトニュース

画像 私はすでにHabréでCodeception -PHPでアプリケーションをテストするためのフレームワークについて書いています。 アプリケーションのテストを作成したことがない場合は、間違いなくCodeceptionを見てください。 非常に使いやすく、開発者を日常から守るために特別に作られています。



今日は、最近プロジェクトにどのような機能が登場したかを紹介し、いくつかの一般的な質問に答えたいと思います。



Composerによるインストール


これで、インストールにPEARは不要になりました。 彼には、タンバリンとシャーマニズムの歌を必要とするさまざまな問題がしばしばあります。 あなたが現代人で、古代の先祖の儀式の歌をすべて忘れているなら、作曲家を試してください。 これにより、Codeception自体、およびMinkやPHPUnitなどの必要なすべてのライブラリを簡単にインストールできます。



手順はこちら



フレームワークのサポート


これで、次のフレームワークの機能テストを作成できます: Symfony2、Zend Framework、symfony、Kohana、SocialEngine 。 ちなみに、最後の2つのモジュールは、サードパーティの開発者によって作成されました。 彼らの例は、お気に入りのフレームワーク用のモジュールを作成することはそれほど難しくないことを示しています。



ドキュメント生成


多くの人は、テストが最高のドキュメントだと言います。 しかし、テストは常に読むことを期待して書かれているわけではありません。 Codeceptionでは、すべてが異なります。Cestテストでは、アクションと目的の結果を記述します。



$I->testMethod('\Service\Group::create'); $I->wantTo('create a group'); $I->executeTestedMethodWith('DemoGroup', 1) ->seeInRepository('Model\Group', array('name' => 'DemoGroup', 'user_id' => 1, 'type' => 'group')) ->seeResultIs('int');
      
      







phpDocumentor2ドキュメント生成システム(以前のDocBlox)を使用する場合、Codeceptionの組み込みプラグインを使用すると、このテストがメソッドの説明に追加されます。 テキストに変換され、次の形式を取ります。



この方法でグループを作成できます



\ Service \ Group :: execute( "DemoGroup"、1)を実行した場合

リポジトリには「Model \ Group」、{「name」:「DemoGroup」、「user_id」:1、「type」:「group」}が表示されます

結果は「int」です



これで、ドキュメントには、パラメータに応じてこのメソッドまたはそのメソッドがどのように動作するかに関する情報が含まれます。 プラグインの接続方法- こちらをお読みください



CIシステムの基本サポート


CodeceptionをJenkinsやBambooなどのContinious Integrationサーバーに接続できるようになりました。 残念ながら、統合テストはこれまでBambooでのみ可能でした。 ただし、結果はXMLで記述されるため、理論的には他のCIシステムで簡単に取得できます。 それらに問題がある場合-お知らせください、私たちはすぐにすべてを修正します。



これらはすべて、他の多くの利点同様にCodeception 1.0.8の最新バージョンで利用可能です。

インストール 、使用。



そして今、一般的な質問への回答:



PHPUnitがある場合にCodeceptionを使用する理由


秘密をお伝えします。Codeceptionは自転車ではなく、PHPUnitのアドオンです。 PHPUnitエンジンでスクリプトテストを実行できます。 同時に、PHPUnit Codeceptionの既存のテストはすべて問題なくキャッチできます。 機能テストと受け入れテストを簡単に追加できます。 Codeceptionで松葉杖を必要とする多くのタスク(たとえば、Seleniumとの統合、データベースとの統合)はすでに解決されています。



Seleniumがある場合にCodeceptionを使用する理由


CodeceptionはSeleniumのテストを実行できます。 ただし、Codeceptionのテストは保守が簡単で、柔軟性があります。 たとえば、ブラウザではなく、Goutteエミュレータを介してテストの一部を実行できます。 または、テストにWebサーバーをまったく使用せず、アプリケーションに直接アクセスします。 これにより、テストの実行時間が大幅に短縮されます。 さらに、Codeceptionは、テスト間のデータのクリーニングに関連するすべての問題を処理します。



Behatがいるのに、なぜCodeceptionなのか?


スタイルの質問:Windowsがある場合、なぜLinuxか。 代替手段があることは常に良いことです。 少なくとも、PHPで受け入れテストを作成できるシステムは、エコシステムでは不要ではありません。



今後の計画


近い将来、コードカバレッジが追加され、サポートされるフレームワークの数が増加します。 しかし、あなたのアイデアを提供してください。 Codeceptionで何を見たいですか?



All Articles