【发布时间】:2021-08-23 13:08:42
【问题描述】:
- Laravel 8
- phpunit 8
- PHP 8
我有以下 phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" backupGlobals="false" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" printerClass="\Sempro\PHPUnitPrettyPrinter\PrettyPrinterForPhpUnit9">
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
<exclude>
<directory suffix=".php">./app/Flare/MapGenerator</directory>
</exclude>
</coverage>
<testsuites>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Console</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<php>
<ini name="memory_limit" value="-1" />
<env name="APP_ENV" value="testing"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="MAIL_DRIVER" value="array"/>
<env name="MAIL_USERNAME" value="test@example.ca" />
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="BROADCAST_DRIVER" value="log"/>
<env name="TIME_ZONE" value="America/Edmonton"/>
</php>
</phpunit>
当我执行./vendor/bin/phpunit 时,测试真的很慢,而且我的数据库正在被覆盖。
据我所知,这是您告诉测试使用 sqlite 数据库的方式,我已经设置了配置:
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => database_path('database.sqlite'),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
// ...
]
如果我删除该数据库文件并运行测试 - 它并不关心。它不会像它应该的那样爆炸,它只是继续运行测试。
我错过了什么吗?我设置了正确的变量,PHP 单元应该会选择它。它只是随机停止工作并停止使用sqlite数据库并使用mysql。
如果我弄乱了 phpunit 文件,然后运行命令它会吓坏,所以我知道它正在读取文件。只是出于某种原因不使用变量。
想法?
【问题讨论】:
标签: php laravel phpunit laravel-8