Codeception功能测试的假IP

时间:2018-02-13 19:09:20

标签: yii2 codeception

我使用Yii2和Codeception来运行测试。

当我运行功能测试时,未定义$SERVER['REMOTE_ADDR']。我如何模拟在这些测试中使用的ip。

我尝试了$SERVER['REMOTE_ADDR'] = '127.0.0.1',但它不起作用。

2 个答案:

答案 0 :(得分:0)

在tests / _support下创建功能性Helper类(如果它不存在):

class FunctionalHelper extends \Codeception\Module {
    public function _before(\Codeception\TestInterface $test)
    {
        $this->getModule('Yii2')->client->defaultServerVars = array_merge(
            $this->getModule('Yii2')->client->defaultServerVars,
            ['REMOTE_ADDR' => '127.0.0.1']
        );            
    }
}

答案 1 :(得分:0)

对于Codecept> = 2.4和<4.0的版本,请尝试使用类似于以下的内容:

Phar:
    Fixed bug #74782 (Reflected XSS in .phar 404 page). (CVE-2018-5712)

不要忘记在class Helper extends \Codeception\Module { /** * {@inheritdoc} */ public function _before(\Codeception\TestInterface $test) { $this->getModule('Yii2')->client->setServerParameter('REMOTE_ADDR', '127.0.0.1'); } } 文件中启用它:

*.suite.yml