Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phpunit重写.env中的变量_Php_Phpunit_Automated Tests_Laravel 5.1 - Fatal编程技术网

Phpunit重写.env中的变量

Phpunit重写.env中的变量,php,phpunit,automated-tests,laravel-5.1,Php,Phpunit,Automated Tests,Laravel 5.1,在我的Laravel5.1项目的.env文件中,我已经将APP_env设置为local,但是当我从终端运行测试时 vendor/bin/phpunit 调试和死在 dd(env(APP_ENV)); 给我“测试” 我对此没有很好的研究,尝试使用以下方法- 正在尝试从cli设置APP_ENV=local pipelineing vendor/bin/phpunit 正在尝试在phpunit.xml文件中添加env变量(不过dosent似乎会覆盖) 添加.env.testing文件并设置APP

在我的Laravel5.1项目的.env文件中,我已经将APP_env设置为local,但是当我从终端运行测试时

vendor/bin/phpunit
调试和死在

dd(env(APP_ENV));
给我“测试”

我对此没有很好的研究,尝试使用以下方法-

  • 正在尝试从cli设置APP_ENV=local pipelineing vendor/bin/phpunit
  • 正在尝试在phpunit.xml文件
    中添加env变量(不过dosent似乎会覆盖)
  • 添加.env.testing文件并设置APP_env=local
  • 在testCase.php文件中,应用程序自动加载
    $app->loadEnvironmentFrom('.env.testing')
以上方法都没有给我预期的结果,而是每次我运行测试时都将APP_ENV作为“测试”

无法跟踪phpunit从何处设置此变量。
请帮忙

在vendor/laravel/framework/src/illumb/Foundation/Testing/TestCase.php中搜索putenv('APP_ENV=Testing');尝试将此更改为本地。
这应该适合您,但并不可取。

在使用phpunit进行测试时,您通常不希望env是本地的。您希望能够区分测试和本地,以便可以对DB调用等使用模拟类。重点是我使用的集成服务器使用phpunit运行测试,而DB配置与此不同,因此,我需要在本地开发机器和集成服务器环境中使用不同的env变量。但我不知道它是如何以某种方式覆盖所有内容并将APP_ENV设置为“测试”的。扰乱底层架构不是一件好事。相反,我认为我会尝试覆盖在env中为每个实例编写的特性。无论如何,谢谢你的投入