gpt4 book ai didi

xml - 为什么 phpunit 没有得到 phpunit.xml 中指定的正确 APP_ENV?

转载 作者:IT老高 更新时间:2023-10-28 21:41:30 24 4
gpt4 key购买 nike

我正在使用 Laravel,这是我的 ./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">
<testsuites>
<testsuite name="FeatureTests">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>

<testsuite name="UnitTests">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="DB_CONNECTION" value="sqlite_testing" />
</php>
</phpunit>

我正在使用以下命令触发我的一个测试套件:

./vendor/phpunit/phpunit/phpunit --testsuite UnitTests

在我的测试方法中我有:

public function testAllMandatoryData()
{
dump(env('APP_ENV'));
....
}

它显示“本地”,我期待 phpunit.xml 中指定的“测试”

         <env name="APP_ENV" value="testing"/>

编辑:附加细节我在 Docker 容器中运行了这个 laravel 应用程序

在 docker-compose.yml 我设置了一些环境变量,例如:

environment:
- APP_ENV=local
- DB_HOST=192.168.0.22
- DB_PORT=33306
- DB_DATABASE=mydatabase
- DB_USERNAME=homestead
- DB_PASSWORD=homestead

我注意到 phpunit.xml 中的指令如下:

    <env name="APP_ENV" value="testing"/>

当名称已经在 docker-compose 中时无效。

相反,如果我添加一些未在 docker-compose.yml 中定义的内容,将在 phpunit 运行时正确设置,例如:

    <env name="DB_CONNECTION" value="sqlite_test"/>

结束编辑

我错过了什么?

谢谢

最佳答案

使用

<env name="APP_ENV" value="testing" force="true"/>
<env name="CACHE_DRIVER" value="array" force="true"/>
<env name="SESSION_DRIVER" value="array" force="true"/>
<env name="QUEUE_DRIVER" value="sync" force="true"/>
<env name="DB_CONNECTION" value="sqlite_testing" force="true"/>

如果没有 force 参数,它将无法工作。看到这个问题: https://github.com/sebastianbergmann/phpunit/issues/2353和合并的 PR:https://github.com/sebastianbergmann/phpunit/pull/2723

关于xml - 为什么 phpunit 没有得到 phpunit.xml 中指定的正确 APP_ENV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45922358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com