Laravel PHPUnit никогда не устанавливает env для "тестирования" на Windows WSL - PullRequest
0 голосов
/ 09 февраля 2020

Я недавно перешел на 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.

...