私のDoctrineFixturesBundleがインストールされていて、コマンドラインからフィクスチャをロードできますが、機能テストからフィクスチャをロードするにはどうすればいいですか?Symfony 2の機能テストからフィクスチャを読み込むにはどうすればいいですか
答えて
this questionのように、テストのsetUp()
メソッドでフィクスチャを読み込むことができます。
fixtures-bundleによる確認を避けるため、質問内のコードを使用することができますが、--append
をdoctrine:fixtures:load
コマンドに追加する必要があります。
より良い解決策は、LiipFunctionalTestBundleを見て、データフィクスチャを使いやすくすることです。
symfonyのWebTestCase
を使用している場合、実際には非常に簡単に器具をロードすることができます。 フィクスチャーはFixtureInterface
を実装する必要があります。テストのsetUp()
メソッドで直接load()
メソッドと呼ぶことができます。あなただけのsymfonyのコンテナから後天することができload()
方法にEntityManager
を渡す必要があります:
public function setUp() {
$client = static::createClient();
$container = $client->getContainer();
$doctrine = $container->get('doctrine');
$entityManager = $doctrine->getManager();
$fixture = new YourFixture();
$fixture->load($entityManager);
}
これは、すべてのReferenceRepositoryのものを逃しています - addRef/getRef –
私はちょうどあなたが最初に前回のテストデータのあなたのテーブルを削除したい場合は少しすっきりアプローチを提供したかったです、例えばあなたがphpunitでテストを実行している場合。
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
use Doctrine\Common\DataFixtures\Executor\ORMExecutor;
use Doctrine\Common\DataFixtures\Loader;
use Namespace\FakeBundle\DataFixtures\ORM\YourFixtures;
public function setUp()
{
static::$kernel = static::createKernel();
static::$kernel->boot();
$this->em = static::$kernel->getContainer()
->get('doctrine')
->getManager()
;
$loader = new Loader();
$loader->addFixture(new YourFixtures);
$purger = new ORMPurger($this->em);
$executor = new ORMExecutor($this->em, $purger);
$executor->execute($loader->getFixtures());
parent::setUp();
}
これは器具をロードすることを可能にする、(あなたが追加器具メソッドにもっとプッシュすることができます)、およびそれらがロードされる前にテーブルをパージします。 MongoDBはMongoDBPurgerとMongoDBExecutorを使用して同じオプションを持っています。 誰かを助けることを願っています
こんにちは、あなたのアプローチを使用しますが、関連するテーブルだけでなくデータベース全体を削除するために '$ executor'を使用します。なぜその動作ですか?什器のロード中に生成されたデータをパージする方法の例は? – ReynierPM
すでに言及したように、LiipFunctionalTestBundleを使用することをお勧めします。 次に、WebTestCaseをLiip \ FunctionalTestBundle \ Test \ WebTestCaseから拡張します。これにより、配列の配列を引数として取る$this->loadFixtures()
を呼び出すことができます。詳細については
$fixtures = array('Acme\MemeberBundle\DataFixtures\ORM\LoadMemberData');
$this->loadFixtures($fixtures);
私は短いブログ投稿を書きました:http://marcjuch.li/blog/2014/04/06/symfony2-rest-functional-testing-with-fixtures/
- 1. Chrome拡張機能バンドル内のファイルから読み込むにはどうすればよいですか?
- 2. jsonのローカルファイルを読み込むにはどうすればいいですか?
- 3. phpのファイルを読み込むにはどうすればいいですか?
- 4. es6/javascriptの機能構成を読み込むにはどうすればよいですか?
- 5. c# - コンソールからcharを読み込んで書き込むにはどうすればいいですか?
- 6. Firebaseクラウド機能でchild_addedの読み込みを停止するにはどうすればいいですか?
- 7. パイプにさらに値を書き込んで読み込むにはどうすればいいですか?
- 8. Symfony 2のルートディレクトリフォルダから画像を読み込む方法は?
- 9. QtDesignerでQMovieを読み込むにはどうすればよいですか?
- 10. リクエストの本文を読み込む際にエラーをテストするにはどうすればよいですか?
- 11. Blockly変数をプログラムで読み込んで読み込むにはどうすればよいですか?
- 12. iOSアプリケーションでファイルを読み込んで読み込むにはどうすればよいですか?
- 13. テキストファイルから複数のものをC++に読み込むにはどうすればいいですか
- 14. ランダムなレベルを読み込むにはどうすればよいですか?
- 15. Sencha Touch 2で外部のJavaScriptを読み込むにはどうすればいいですか
- 16. OpenCVを使ってPythonのNamedTempFileからビデオを読み込むにはどうすればいいですか?
- 17. Keras 2でマージ関数を読み込み可能にするにはどうすればよいですか?
- 18. python3xはカルマから端末出力を読み込むにはどうすればいいですか?
- 19. リーフレットヒートマップでCSVからデータを読み込むにはどうすればいいですか?
- 20. ページ読み込み前にJavascript機能を実行するにはどうすればよいですか?
- 21. HttpContext.TraceIdentifierから読み込むSerilogエンリッチャを作成するにはどうすればいいですか?
- 22. 読み込み時にコンテキストメニューを読み込むにはどうしたらいいですか?
- 23. JavaScriptから取得した画像を読み込むにはどうすればいいですか?
- 24. Delphi 6. MS AccessからPDFデータを読み込むにはどうすればいいですか
- 25. Chrome拡張機能を更新/再読み込みするにはどうすればよいですか?
- 26. ファイルから複数の行のデータをPythonに読み込むにはどうすればよいですか?
- 27. 「プロセス名」+アドレスのようなポインタから読み込むにはどうすればよいですか?
- 28. イメージ1、イメージ2、イメージ3などを読み込むにはどうすればよいですか
- 29. PythonでWebページを読み込んでフラットファイルに書き込むにはどうすればいいですか?
- 30. ページの読み込みに素晴らしいフォントなどのWebフォントを読み込むにはどうすればよいですか?
私の答えはあなたの質問を解決しましたか? LiipFunctionalTestBundleを使用するか、使用するかのように、setUp()メソッドでフィクスチャをロードします。 – nifr
@nifr私のニーズに合ってくれてありがとうございました。あなたは思いついた質問で解決策を使用しました...私はLiipFunctionalTestBundleの利点を考えます... – Ousmane