2016-10-18 36 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__ . '/../'));