Я недавно перешел на Windows + WSL, и пока это было здорово. Однако у меня было много проблем с PHPUnit, и одна из них заключается в том, что переменная окружения никогда не устанавливается на testing
, поэтому она всегда стирает мою базу данных, и это немного раздражает.
I ' мы испробовали все обычные решения, такие как config:cache
и config:clear
, но независимо от того, что все еще кажется, что они хотят работать как local
, а не testing
.
Команда, которую я выполняю, это; ./vendor/bin/phpunit tests/Feature/SomeTest.php
и мой PHPUnit Config выглядит следующим образом;
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<php>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
<server name="MAIL_DRIVER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
</php>
<listeners>
<listener class="NunoMaduro\Collision\Adapters\Phpunit\Listener"/>
</listeners>
</phpunit>
Надеюсь, кто-то может помочь, так как я полагаюсь на TDD, и это является для меня преградой для WSL.