База данных файла Sqlite для тестирования кода не удалась

Попытки использовать базу данных файлов sqlite в каталоге app/cache/tests не увенчались успехом. Это определяется путем очистки базы данных dev MySQl и заполнения базы данных тестовой среды через консоль. Заполнение тестовой базы данных было подтверждено внешним диспетчером Sqlite. [Тесты, выполненные без прохождения конфигурации sqlite.]

codeception.yml:

actor: Tester
paths:
    tests: tests
    log: tests/_output
    data: tests/_data
    support: tests/_support
    envs: tests/_envs
settings:
    bootstrap: _bootstrap.php
    colors: false
    memory_limit: 1024M
extensions:
    enabled:
        - Codeception\Extension\RunFailed
modules:
    config:
        - Db:
            dsn: 'sqlite:./app/cache/test/test.sqlite'
            user: ''
            password: ''
            dump: tests/_data/test.sql
            populate: true
            cleanup: false
            reconnect: true

Редактировать:

В виртуальной машине Ubuntu добавление конфигурации Symfony2 в accept.yml позволяет добиться частичного успеха — тест использует базу данных Sqlite, но не перезаписывает указанный дамп (test.sql). В Windows добавление конфигурации Symfony не имеет значения.

принятие.yml:

class_name: AcceptanceTester
modules:
    enabled:
        - PhpBrowser:
            url: http://vol
        - \Helper\Acceptance
# adding these lines enables Ubuntu to use sqlite db
        - Symfony2:
            app_path: ./app
            environment: test

person geoB    schedule 15.09.2015    source источник


Ответы (1)


Вы не включили модуль БД в accept.yml

modules: enabled: - Db - PhpBrowser: url: http://vol - \Helper\Acceptance

Также не добавляйте PhpBrowser и Symfony2 одновременно, можно использовать только один из них.

person Naktibalda    schedule 16.09.2015
comment
Очаровательный. Я ценю понимание. - person geoB; 16.09.2015
comment
Однако я полагаю, что замены конфигурации Symfony2 на (работающую) конфигурацию WebDriver в accept.yml недостаточно. Тесты выполняются для MySQL, а не для базы данных Sqlite. - person geoB; 16.09.2015
comment
Это потому, что ваш веб-сайт использует mysql, Codeception не имеет контроля над приложением, к которому он обращается через HTTP. - person Naktibalda; 16.09.2015
comment
Спасибо. Думаю, теперь я понимаю лучше. - person geoB; 17.09.2015
comment
Извините, но я остаюсь несколько в тупике. Если WebDriver используется для приемочного теста, и этот тест выполняется для работающей базы данных, как выполняется очистка/откат? - person geoB; 17.09.2015
comment
Вы должны настроить codeception для использования той же базы данных, что и сайт, который вы тестируете. Не тестируйте живой веб-сайт, разверните его в другом месте для тестирования. - person Naktibalda; 17.09.2015
comment
Теперь все (почти) имеет смысл. Спасибо за ваше терпение и комментарии. - person geoB; 18.09.2015