3

Yii アプリケーションで Selenium を使用してテストを実行しようとしています。エントリーページを開いてテキストをチェックする簡単なテストが機能しています。

次のテスト スニペットを見てみましょう。

class ItemTest extends WebTestCase
{
    public function testCreateItem()
    {
        $this->open('admin/item');
        $this->click("link=create item...");
              ...
    }
}

「admin」は私のアプリのモジュールです。最初の関数 open() が機能しています。index-test.php で正しい URL が呼び出されます。

しかし、2 番目の関数 click() は何らかの方法でメインの index.php にルーティングされ、index-test.php にはルーティングされません。URLマネージャーの設定に関係していると思いますか?

'urlManager'=>array(
    'urlFormat'=>'path',
'rules'=>array(
    ''=>'site/index',
    '<controller:\w+>/<id:\d+>'=>'<controller>/view',
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    '<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<module>/<controller>/<action>',
    '<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>',
),
'showScriptName'=>false,
),

どのように対処するのがベストなのか、アドバイスをいただければ幸いです。

4

1 に答える 1

3

config / test.phpで、スクリプトファイル名(index-test.php)を表示するように指示する必要があります。

return CMap::mergeArray(
    require(dirname(__FILE__).'/main.php'),
    array(
        'components'=>array(
            'fixture'=>array(
                'class'=>'system.test.CDbFixtureManager',
            ),
            /* uncomment the following to provide test database connection
            'db'=>array(
                'connectionString'=>'mysql:host=localhost;dbname=db-test',
            ),
            */
            'urlManager' => array(
                'showScriptName' => true,
            ),
        ),
    )
);
于 2013-03-22T12:50:16.283 に答える