Codeception:强制PhpBrowser使用自定义环境

问题描述 投票:0回答:1

我有一个带有文本字段和按钮的页面。填写文本字段并按下按钮后,控制器将连接到API并根据文本获取一些数据。

我准备了FAKE_API进行测试。 REAL_APIFAKE_API都在服务容器中。当环境设置为FAKE_APItest文件)时,优先考虑.env.test。控制器通过依赖项注入(构造函数参数)获取API对象。

当我使用PhpBrowser中的Codeception进行测试时,环境测试本身被设置为test-可以由测试中的var_dump($_ENV['APP_ENV'])进行检查。

但是,(这就是问题所在),如果我将var_dump($_ENV['APP_ENV'])添加到控制器代码并运行相同的测试,则可以看到控制器实际上使用了常规的'dev'环境(在.env文件中设置) 。这意味着正在使用REAL API而不是我的FAKE_API

如何强制PhpBrowser测试使用我的.env.test?可能吗

codeception
1个回答
0
投票

您不能那样做。

PhpBrowser通过HTTP与被测系统通信,因此无法设置系统的环境变量。

您的选择是:

  • 在测试配置中部署API
  • 使用GET或POST参数或标头传递环境,并使您的应用代码接受它。 (这是一个坏主意)
© www.soinside.com 2019 - 2024. All rights reserved.