我目前正在为用php编写的api编写单元测试。这个api在每个请求之前实现一个速率限制步骤,我想在测试应用程序时避免这个步骤。
现在,如果我想在本地运行测试,我只需要检查本地IP,即“:1”。但我在访问持续集成服务器提供的环境变量时遇到问题(我正在使用wercker)。
如果我从phpunit测试中运行这个:
var_export(isset($_SERVER["CI"]) || isset($_SERVER["wercker"]));
我得到
true
,但如果在应用速率限制之前执行类似操作:if (isset($_SERVER["CI"]) || $request->getIp() === "::1") {
return;
} else {//...
wercker测试一直失败,因为它从不跳过速率限制逻辑。注意,第一段代码是从phpunit中的测试运行的,而第二段是服务器应用程序的一部分。
我做错了什么环境变量?
请让我知道,如果我必须提供更多的信息或文件。
最佳答案
我可以通过使用php的getenv
函数使其工作
if (getenv("CI") || $request->getIp() === "::1") {
return;
} else {//...
关于php - 如何从PHP获取Wercker环境变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32295880/