Yii2功能测试不适用于已配置的组件

时间:2017-12-21 10:14:23

标签: php yii yii2 functional-testing codeception

我正在为应用程序使用Yii2基本模板,其中大多数配置位于<yii-home>/config/web.php中,其中包含<yii-home>/config/params.php

功能测试只应在查找标题时启动索引操作,如下所示:

class StartPageCest
{
    public function _before(\FunctionalTester $I)
    {
        $I->amOnPage(['site/index']);
    }

    public function _after(\FunctionalTester $I)
    {
    }

    // tests
    public function tryToTest(\FunctionalTester $I)
    {
        $I->see('hello', 'h2');  
    }
}

但这会导致错误:

 Test  tests/functional/StartPageCest.php:tryToTest
  [Error] Call to a member function get() on null

通过索引操作我找到了这一行,测试停止了:

$result = Yii::$app->cache->get('site_index_result');

看起来,缓存组件未初始化。 (顺便说一句,此操作中还有一个Solr组件,测试也会停止)。 可能来自<yii-home>/config/web.php的配置未加载到测试运行时中。这可能吗?

我的functional.suite.yml看起来像这样:

class_name: FunctionalTester
modules:
    enabled:
      - Filesystem
      - Yii2:
          configFile: config/testconfig.php

这是testconfig.php

的内容
$config =  yii\helpers\ArrayHelper::merge(

        require(__DIR__ . '/web.php'),
    [
        'id' => 'app-tests',       
    ]
);

return $config;

所以我的问题是:

  1. 如何在oder中调试测试以查看,加载了什么以及哪些信息在测试运行时可用?
  2. 如何将应用程序配置加载到测试环境中?

0 个答案:

没有答案