symfony – No connection params set for propel

(この記事は symfony ver. 1.0.6 で確認したものです)
 
functional test で sfPropelData を使った DB へのテスト用データの投入をしようとしたら

PropelException: No connection params set for propel

なんて言われてしまった。
databases.yml は all で設定してるし、web 経由の DB アクセスでは問題ないのに。
 
対策を調べてみたところ、「lime unit-test with Propel: not working (symfony forum message #26072)」を参考に以下のようにすることで期待通り動作しました。

include(dirname(__FILE__).’/../../bootstrap/functional.php’); // functional test のお約束
 
sfContext::getInstance(); // ここが肝。
 
// データ投入部分
$data = new sfPropelData();
$data->loadDataFromArray(array(
   ‘UserTable’ => array(
       array(‘id’=>1, ‘name’=>’John Doe’, ‘age’=>25),
       array(‘id’=>2, ‘name’=>’Jane Doe’, ‘age’=>18),
   ),
));
 
// 以下テストが続く…

 
ただし、注意点として、挿入したデータは実際にデータベースに記録されるため、テストごとにデータをクリアする必要があります。
 
また、このエラーは batch (`symfony batch default appname` で作成したもの)でも同様に発生しましたが、同じ対策方法で対応できました。