Таблица PHPUnit DbUnit не найдена - PullRequest
0 голосов
/ 28 июня 2018

Я получаю очень странную ошибку при запуске модульного теста:

PDOException: SQLSTATE [42S02]: базовая таблица или представление не найдено: 1146 Таблица 'test.result' не существует

/ вар / WWW / HTML / Проект1 / Рами / тесты / Data / Модели / DataImportTest.php: 60

Тестовый код, о котором идет речь (упрощенный, чтобы попытаться изолировать проблему):

/**
 * @covers \Project1\Rami\Data\Models\DataImport::insertData
 */
public function testInsertData(): void {
    $this->object->insertData(1);

    $sql = 'SELECT request_id
              FROM requests
             WHERE request_id = 1;';

    $queryTable = $this->getConnection()->createQueryTable('result', $sql);
    $expectedTable = $this->createArrayDataSet([
        'result' => [
            [
                'request_id' => '1'
            ]
        ]
    ])->getTable('result');

    static::assertTablesEqual($expectedTable, $queryTable);
}

Что еще более странно, так это то, что утверждения в других тестах, использующих assertTablesEqual, работают и проходят нормально, только этот тест не проходит. PHPUnit, по-видимому, анализирует таблицу в базе данных, называемую «результатом», при создании ожидаемой таблицы (которой нет в базе данных), но он не делает этого ни для одного из других тестов.

Я попытался удалить базу данных и воссоздать ее, перезагрузить среду разработки / тестирования (Vagrant box) и даже заново подготовить Vagrant box с новой установкой MariaDB, но все безуспешно.

Поиск в сообщении об ошибке показывает только проблемы, связанные с Laravel, с небольшим количеством подобных проблем в других средах PHP, но ничего не относится к тестированию.

Насколько я могу судить, реализация работает нормально, и выполнение запроса вручную в тестовой базе данных не вызывает ошибок.

Есть идеи?

...