启用Yii1模块的代码

时间:2016-10-18 22:09:48

标签: php unit-testing yii functional-testing codeception

我使用的是代码2.2.5和Yii 1.1.4 我有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

当我单独运行测试时,一切都很好。 e.g。

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

一起运行的主要目标是代码覆盖率。

1 个答案:

答案 0 :(得分: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__ . '/../'));