2013-03-22 50 views
3

我嘗試使用Selenium爲我的Yii應用運行測試。一個簡單的測試,我打開入口頁面並檢查文本正在工作。Yii功能測試的正確路由

讓我們下面的測試片段:

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

「管理員」是在我的應用程序的模塊。第一個函數open()正在工作。調用index-test.php的正確url。

但第二個函數click()以某種方式路由到主index.php而不是index-test.php。我想它與我的網址管理器配置有關?

'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, 
), 

我會很高興,如果你能給我一些提示如何最好的處理這個。

回答

3
在你的config/test.php的,你必須告訴它顯示腳本文件名(索引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, 
      ), 
     ), 
    ) 
); 
+0

非常感謝你,這是工作。對我感到羞恥,我沒有想到這一點。 – Sisko78 2013-03-22 13:12:45