1

私はNetBeansIDEでSymfony+Doctrine+PHPUnitを使用しています。これがユニットテストへの私の現在のアプローチです。

  • setUp()関数は、.ymlファイルからテストフィクスチャをロードします
  • tearDown()関数は、モデルからすべてのデータを削除します。これは、すべてのモデルの名前の配列をDoctrine_Query :: delete($ modelName)-> execute()のようなものにループすることによって行われます。

これはうまくいくようですが、これが正しい方法であるかどうかだけ知りたいです。基本的に、「すべて削除」するモデル/テーブルを指定することにより、各テスト関数の後にすべてのテーブルをクリアしています。

Q1:これが正しい方法かどうか疑問に思っています... Q2:これはNetbeans IDEでうまく機能しますが、「。/ symfonytest:unit」では機能しないようです。私は何かが足りないのですか、それともCLIはライムで動作しますか?

4

3 に答える 3

1

./symfony test:unit は、テスト フレームワークとして phpUnit ではなく、lime を使用する symfony 独自のテスト スイートを実行します。

また、netbeans は統合テストのサポートに phpUnit を使用します。うまくいけば、netbeans は、netbeans 6.8 の着信 symfony サポートに symfony テスト スイートのテスト サポートを追加します。

于 2009-09-16T10:08:31.277 に答える
0

プラグインなしで、PHPUnitを使用して外部で試しています。私はドクトリンを使用しています。私はかなりの問題を抱えています。1 つの PHPUnit (私が作成した) tes メソッドを実行すると、それは素晴らしいことです。2つ目、あまり良くない。それは私が Doctrine を使用している方法かもしれません。データベースから (PHPUnit メソッド呼び出しの間で) すべてを削除し、フィクスチャ ファイルをすべて setup() で復元しても、DOCTRINE は以前の値を記憶しているようです。

接続をフラッシュするかどうか、誤って「記憶」されている親オブジェクトの設定を解除するかどうか、refreshRelated() などは関係ありません。リレーションシップへの最初の割り当てを行うと、古い値が取得されます。

$parent=新しいParentType; // 親の値を設定します。$child=new ChildType //子の値を設定 $child['Parent']=$parent; $child->save();

データベースはすべて正常に反映されています。動作していないのは PHPUnit の Doctrine です。私はまだPHPUnitの外で試していません。結局のところ、使用する前にテストしてください。しかし、私はそれをしなければならないかもしれませんし、それが Doctrine なのか PHPUnit なのかを確認する必要があります

于 2010-07-19T03:28:01.443 に答える
0

symfony で phpunit を使用したい場合は、以下をチェックしてください: PHPUnit プラグインこれは1.2.x でのみ機能するようです。はベータ版ですが、著者によると 1.4.x で動作します。すぐに試してみるつもりです。覚えていれば、ここに戻って調査結果をスローします。正直なところ、インストールしたくない場合でも取り消すのは難しくないので、試すのは簡単です。

たまたま試してみたら、結果を投稿してください。あなたの考えを聞くことに本当に興味があります. 私はライムが不自由だと思っています(HAH!)。

于 2010-03-10T17:21:28.423 に答える