我使用Yii2和Codeception来运行测试。
当我运行功能测试时,未定义$SERVER['REMOTE_ADDR']
。我如何模拟在这些测试中使用的ip。
我尝试了$SERVER['REMOTE_ADDR'] = '127.0.0.1'
,但它不起作用。
答案 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