Phpunit重写.env中的变量
在我的Laravel5.1项目的.env文件中,我已经将APP_env设置为local,但是当我从终端运行测试时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
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')代码>
请帮忙 在vendor/laravel/framework/src/illumb/Foundation/Testing/TestCase.php中搜索putenv('APP_ENV=Testing');尝试将此更改为本地。
这应该适合您,但并不可取。在使用phpunit进行测试时,您通常不希望env是本地的。您希望能够区分测试和本地,以便可以对DB调用等使用模拟类。重点是我使用的集成服务器使用phpunit运行测试,而DB配置与此不同,因此,我需要在本地开发机器和集成服务器环境中使用不同的env变量。但我不知道它是如何以某种方式覆盖所有内容并将APP_ENV设置为“测试”的。扰乱底层架构不是一件好事。相反,我认为我会尝试覆盖在env中为每个实例编写的特性。无论如何,谢谢你的投入