我试图让我们的PHPunit测试在我们的构建服务器(Windows jenkins服务器)上运行。
他们正确地在我的本地Ubuntu 16.04系统上运行,但是当我到达Windows构建服务器时,我遇到了一些奇怪的会话问题。
我在Yii2 Session类周围有一个轻量级包装器,因此如果我们更改框架,我只需要在一个地方更新会话调用。
这个班级:
<?php
use \yii\web\Session AS Session;
class SessionHelper {
public static function get($key, $defaultValue = null) {
$yiiSession = new Session();
return $yiiSession->get($key, $defaultValue);
}
public static function set($key, $data) {
$yiiSession = new Session();
return $yiiSession->set($key, $data);
}
} //EOF
我将这个SessionHelper用于我的应用程序和我的Test类中的所有会话。
我遇到的问题是:当我从测试用例中调用SessionHelper::set('something', 'something');
时,它会正确地将属性设置为会话。但是,下次我调用SessionHelper::set('something-different', 'something-different');
时,它会丢失所有以前的会话数据,并且只有这个新的会话字段。
这是由于生成了一个&#34;新会话();&#34;在每个获取/设置请求?我检查过,服务器之间的会话设置是相同的,session_id()始终是相同的。