Использование Phpunit / Почему phpunit удаляет все данные в моей базе данных - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь проверить свои функции, но каждый раз, когда я пытаюсь запустить phpunit, он удалит все записи в моих таблицах. Я уже настроил свой файл phpunit.xml, чтобы просто в своей тестовой базе данных я просто следовал всем документам, нужно ли мне настраивать sqlite inmy машину, поскольку у меня ее нет? или что ? У меня только установлен laragon и phpmyadmin.

phpunit.xml file

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
   backupStaticAttributes="false"
   bootstrap="vendor/autoload.php"
   colors="true"
   convertErrorsToExceptions="true"
   convertNoticesToExceptions="true"
   convertWarningsToExceptions="true"
   processIsolation="false"
   stopOnFailure="false">
   <testsuites>
    <testsuite name="Feature">
        <directory suffix="Test.php">./tests/Feature</directory>
    </testsuite>

    <testsuite name="Unit">
        <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"/>
    <env name="DB_DATABASE" value=":memory:"/>
</php>
</phpunit>

1 Ответ

0 голосов
/ 10 января 2019

Обязательно используйте черту DatabaseMigrations в ваших тестовых классах. Например.

use Illuminate\Foundation\Testing\DatabaseMigrations;

class SomeTest extends TestCase
{
     use DatabaseMigrations;

   /**
    * A basic test example.
    *
    * @return void
    */
    public function testSomething()
    {
        //some code
    }

}

Это переносит ваши данные при настройке, а затем регистрирует направление для отката миграций, когда приложение завершается в конце теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...