2012-04-23 12 views
3

ユニットテストと機能テストを持つSymfony2アプリがあります。テストスイートを実行するたびに設定などをコンパイルするオーバーヘッドがないように、ユニットテストと機能テストを分ける習慣があるのか​​どうか疑問に思ったのですか?ユニットテストスイートは、データベースの存在や特定の構成に依存してはいけません。私は、機能テストを明確にするために、あるいは何らかの形で、バンドル内のTests/Controllerディレクトリを除いたものと、そのパターンだけを含むものとの2つの異なるテストスイートを作成するための命名パターンを採用することを考えていました。Symfony2アプリケーションのユニットテストと機能テストを分離する標準的な方法はありますか?

これは他の人が共有する問題ですか?どのような回答がありますか?可能であれば、Symfony2アプリのユニットテストと機能テストは、デフォルトでは理想的に分離されるべきであるという私の感想を共有していますか?

答えて

2

通常、ユニットと受け入れ/機能テストには、前者の場合はPHPUnit、後者の場合はBehatという異なるツールが使用されます。 Behatの場合、Features名前空間でテストし、app/console -e=test behatコマンドで実行します。一方、PHPUnitはphpunitコマンドで実行します。 FOSCommentBundleがこれの例です。

これにBehatを使用したくない人は、単体テストにはTests名前空間を使用し、機能テストには名前空間を使用することをお勧めします。

+0

ありがとうございます。だから、BehatはSymfony2の機能テストのデファクトスタンダードですか? WebTestCaseのサブクラス(機能テスト)を含む可能性のあるテストを保存するための標準的な規則は、ユニットと機能のあいだを曖昧にしないという点で、この問題を解決することはできません。 –

+0

もしあなたがBehatに行くなら、あなたは 'WebTestCase'の使用を止め、受け入れ/機能テストの代わりにBehat&Minkを使います。このようにして、 'Tests'名前空間は単体テストしか持たないでしょう。 –

+1

私はそれを得る。 :) WebTestCaseがフレームワーク内にあり、機能テストを行う方法として文書化されている限り、コミュニティが主にWebTestCaseを使用してBehat/Minkを使用するようになったかどうかを知りたいだけです代わりにBDDフレームワークを使用できることがわかっている場合)、テストスイートを自動的に分離することはできませんが、これは私にとって壊れているようです。 –

関連する問題