2

これについてはすでにいくつかのトピックが存在することは知っていますが、具体的な回答は得られませんでした。

私はすでに Units Test のメモリデータベースに次のものを持っています:

Doctrine_Core::createTablesFromModels(sfConfig::get('sf_lib_dir').'/model');
Doctrine_Core::loadData(sfConfig::get('sf_test_dir').'/phpunit/fixtures');

しかし、これは機能テストでは機能しません。いつも言う:no such table: user.

しかし、この StepUp でテストを実行すると:

    Doctrine_Core::createTablesFromModels(sfConfig::get('sf_lib_dir').'/model');
    Doctrine_Core::loadData(sfConfig::get('sf_test_dir').'/phpunit/fixtures');
    Doctrine_Core::loadData(sfConfig::get('sf_test_dir').'/phpunit/fixtures');

「Doctrine_Connection_Sqlite_Exception: 整合性制約違反: 19 列のユーザー名が一意ではありません」という例外が発生します。ユーザー名は一意である必要があり、メモリ内の sqlite データベースにデータをロードしている証拠であるため、これは理にかなっています。

ブラウザがリクエストを行うと、CLI で現在開いているものを使用する代わりに、SQLite データベースへの新しい接続がメモリ内に作成されると思われます。

4

0 に答える 0