2016-10-18 34 views
0

我正在使用codeception 2.2.5 a和Yii 1.1.4 Yii1模塊存在問題。我已經它配置爲用於功能和單元測試使用Yii1啓用模塊的代碼

這裏是functional.suite.yml

class_name: FunctionalTester 
modules: 
    enabled: 
     - Yii1: 
      appPath: 'www/test.php' 
      url: 'http://localhost/test.php' 
      part: init 
     - PhpBrowser: 
      url: 'http://localhost/index-test.php' 
     - \Helper\Functional 
coverage: 
    enabled: true 
    remote: false 

這裏是unit.suite.yml

class_name: UnitTester 
modules: 
    enabled: 
     - Asserts 
     - Yii1: 
      appPath: 'www/test.php' 
      url: 'http://localhost/test.php' 
     - \Helper\Unit 

當運行測試單獨一切效果很好。例如

php codecept.phar run functional --xml --html 
php codecept.phar run unit --xml --html 

當我跑一起

php codecept.phar run --xml --html 

它運行而不與Yii1模塊連接問題的功能。它帶來的單位

[Codeception\Exception\ModuleConfigException]      
    Yii1 module is not configured!          

    Couldn't load application config file www/test.php     
    Please provide application bootstrap file configured for testing 

運行在一起的主要目標是代碼覆蓋率。

回答

0

這裏是回答我的問題:

我創建了一個單獨的模塊Yii1Ext(Yii1Ext.php)延伸到Yii1模塊:

namespace Helper; 

use Codeception\Module\Yii1; 

class Yii1Ext extends Yii1 
{ 
    public function _initialize() 
    { 
     $this->config['appPath'] = FRONTEND.'/'.$this->config['appPath']; 
     parent::_initialize(); 
    } 
} 

而且在配置文件中啓用了Yii1Ext模塊代替Yii1模塊的

class_name: FunctionalTester 
modules: 
    enabled: 
     - \Helper\Yii1Ext: 
      appPath: 'www/test.php' 
      url: 'http://localhost/test.php' 
      part: init 
     - PhpBrowser: 
      url: 'http://localhost/' 

注意:確保在Yii中所有定義的變量是由語句定義

defined('ROOT_DIR') or define('ROOT_DIR', realpath(__DIR__ . '/../'));