所以我试图将我的环境加载到单元测试中,以避免在Laravel 5.8的phpunit.xml文件中定义api键。这是我的问题:
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
if (file_exists(dirname(__DIR__) . '/.env.testing')) {
(new \Dotenv\Dotenv(dirname(__DIR__), '.env.testing'))->load();
}
$app->make(Kernel::class)->bootstrap();
return $app;
}
以上工作和env var都正确加载。但是,这是旧的处理方式,所有新帖子都建议这样做:
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
$app->loadEnvironmentFrom('.env.testing');
$app->make(Kernel::class)->bootstrap();
return $app;
}
有人对“为什么”加载env为什么不起作用有任何线索吗? $ app-> environmentFilePath()显示正在从正确的位置加载环境。
答案 0 :(得分:0)
出于单元测试目的,Laravel 已经透明地处理现有的 .env.testing
文件。