我需要在两个测试之间共享变量。有什么办法吗?
这是PHP上的Codeception。
我可以制作一些XML文档,将其存储,然后在其他测试中加载它。但这并不是我想要的。
我实现了创建具有一些属性的BaseCest类,这些属性将在扩展它的类上共享。看起来像:
class BaseCest
{
protected $token;
public function _before(ApiTester $I)
{
$this->token = $GLOBALS['token'] ?? null;
}
}
并且在您的AuthCest上:
class AuthCest extends BaseCest
{
public function loginSuccess(ApiTester $I)
{
global $token;
# your tests go here
$token = $I->grabDataFromResponseByJsonPath('$meta.token')[0];
}
对于以后的测试,只需致电$this->token
附:请记住使用@depends来组织测试顺序
[4个月后,我找到了解决方案。这种测试是不好的。这创建了对先前测试的依赖。最好使用步骤/页面对象+继承和代码接收数据提供程序。1个文件= 1个测试