37140554d3
根因:docker compose 將 DB_CONNECTION=mysql 注入為真實環境變數, PHPUnit 的 <env force> 只覆蓋 $_ENV/putenv,但 Laravel env() 優先讀 $_SERVER,導致 RefreshDatabase 一直在清空開發 DB(今日實際發生三次, 也是先前『DB 神秘清空』的元凶)。 - 新增 tests/bootstrap.php 於載入前同步覆蓋 $_SERVER/$_ENV/putenv - phpunit.xml bootstrap 指向新檔,DB env 加 force 屬性 - 驗證:容器內全套件後 MySQL 資料存活(users=13) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
37 lines
1.4 KiB
XML
37 lines
1.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
||
bootstrap="tests/bootstrap.php"
|
||
colors="true"
|
||
>
|
||
<testsuites>
|
||
<testsuite name="Unit">
|
||
<directory>tests/Unit</directory>
|
||
</testsuite>
|
||
<testsuite name="Feature">
|
||
<directory>tests/Feature</directory>
|
||
</testsuite>
|
||
</testsuites>
|
||
<source>
|
||
<include>
|
||
<directory>app</directory>
|
||
</include>
|
||
</source>
|
||
<php>
|
||
<env name="APP_ENV" value="testing"/>
|
||
<env name="APP_MAINTENANCE_DRIVER" value="file"/>
|
||
<env name="BCRYPT_ROUNDS" value="4"/>
|
||
<env name="CACHE_STORE" value="array"/>
|
||
<!-- force:docker compose 將 DB_CONNECTION=mysql 設為真實環境變數,
|
||
phpunit 的 env 預設不覆蓋真實環境變數,導致容器內跑測試時
|
||
RefreshDatabase 直接清空開發用 MySQL(2026-06-12 實際發生兩次) -->
|
||
<env name="DB_CONNECTION" value="sqlite" force="true"/>
|
||
<env name="DB_DATABASE" value=":memory:" force="true"/>
|
||
<env name="MAIL_MAILER" value="array"/>
|
||
<env name="PULSE_ENABLED" value="false"/>
|
||
<env name="QUEUE_CONNECTION" value="sync"/>
|
||
<env name="SESSION_DRIVER" value="array"/>
|
||
<env name="TELESCOPE_ENABLED" value="false"/>
|
||
</php>
|
||
</phpunit>
|