私の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. phpのファイルを読み込むにはどうすればいいですか?
- 2. パイプにさらに値を書き込んで読み込むにはどうすればいいですか?
- 3. Sencha Touch 2で外部のJavaScriptを読み込むにはどうすればいいですか
- 4. ランダムなレベルを読み込むにはどうすればよいですか?
- 5. ページ読み込み前にJavascript機能を実行するにはどうすればよいですか?
- 6. 読み込み時にコンテキストメニューを読み込むにはどうしたらいいですか?
- 7. Symfony 2機能テスト
- 8. Chrome拡張機能を更新/再読み込みするにはどうすればよいですか?
- 9. イメージ1、イメージ2、イメージ3などを読み込むにはどうすればよいですか
- 10. jQueryで2番目のCSVを読み込むにはどうすればよいですか?
- 11. ページの読み込みに素晴らしいフォントなどのWebフォントを読み込むにはどうすればよいですか?
- 12. 「プロセス名」+アドレスのようなポインタから読み込むにはどうすればよいですか?
- 13. JavaでZipファイルからメモリにファイルを読み込むにはどうすればよいですか?
- 14. 同じ名前の2つのタスクを読み込むにはどうすればよいですか?
- 15. asp.netの別のアセンブリから設定ファイルを読み込むにはどうすればよいですか?
- 16. yamlのフィクスチャにDjangoテーブルdjango_siteを埋め込むにはどうすればいいですか?
- 17. Javaクラスパスのネットワークディレクトリからリソースを正しく読み込むにはどうすればよいですか?
- 18. ファイルから最初の行を読み込むにはどうすればよいですか?
- 19. Asp.net MVCのテーブルから投稿データを読み込むにはどうすればよいですか?
- 20. iOS 4のUIViewからnibを読み込むにはどうすればよいですか?
- 21. WebからPNGをTImageコントロールに読み込むにはどうすればよいですか?
- 22. PHP:FTPサーバーから.txtファイルを変数に読み込むにはどうすればよいですか?
- 23. ベクトルをテキストファイルからMATLABに読み込むにはどうすればよいですか?
- 24. IsolatedStorageから整数の配列に直接読み込むにはどうすればよいですか?
- 25. library.dll.configから読み込むDLL ApplicationSettingsクラスを作成するにはどうすればよいですか?
- 26. レールキャッシュ機能をテストするにはどうすればいいですか
- 27. JavaScriptを.jsonファイルから読み込むにはどうすればよいですか?
- 28. 標準入力からsedを読み込むにはどうすればよいですか?
- 29. URLから動的jquery UIダイアログを読み込むにはどうすればよいですか?
- 30. C#richTextBoxの上から読み込むにはどうすればよいですか?
私の答えはあなたの質問を解決しましたか? LiipFunctionalTestBundleを使用するか、使用するかのように、setUp()メソッドでフィクスチャをロードします。 – nifr
@nifr私のニーズに合ってくれてありがとうございました。あなたは思いついた質問で解決策を使用しました...私はLiipFunctionalTestBundleの利点を考えます... – Ousmane