laravel编辑phpunit.xml以在测试时更改环境
我正在为Laravel中的一个应用程序进行测试,我想更改环境变量的默认配置。 在Laravel文档中: 运行单元测试时,Laravel将自动设置 配置环境以进行测试。 您可以根据需要自由创建其他测试环境配置。 可以在phpunit.xml文件中配置测试环境变量 如何从laravel编辑phpunit.xml以在测试时更改环境,php,xml,laravel,phpunit,Php,Xml,Laravel,Phpunit,我正在为Laravel中的一个应用程序进行测试,我想更改环境变量的默认配置。 在Laravel文档中: 运行单元测试时,Laravel将自动设置 配置环境以进行测试。 您可以根据需要自由创建其他测试环境配置。 可以在phpunit.xml文件中配置测试环境变量 如何从phpunit.xml更改环境 文件如下: <?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals="false" backupStat
phpunit.xml
更改环境
文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Application Test Suite">
<directory>./app/tests/</directory>
</testsuite>
</testsuites>
</phpunit>
/应用/测试/
只需添加带有测试环境变量的
部分:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false">
<testsuites>
…
</testsuites>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="DB_DATABASE" value="…"/>
<env name="DB_USERNAME" value="…"/>
<env name="DB_PASSWORD" value="…"/>
</php>
</phpunit>
…
您可以让PHPUnit在安装过程中加载您选择的.env文件。在测试用例中
public function createApplication()
{
$app = require __DIR__ . '/../bootstrap/app.php';
Dotenv::load(__DIR__ . '/../', '.env.testing');
$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
$this->baseUrl = env('APP_URL', $this->baseUrl);
return $app;
}
我希望在测试环境中使用默认的.env.php,而不必添加.env.testing.php或编辑phpunit.xml!Thxy如果有帮助的话,你可以接受我的回答供其他读者参考:)