我目前正在为用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/

10-10 13:59