2016-10-27 2 views
0

я получил проект Yii2, который использует базу данных с именем интерфейс, но я хотел бы выполнить свои приемочные испытания на другую базу данных с именем codeception. Проблема в том, что когда я запускаю тесты, она по-прежнему использует базу данных frontend вместо код-код. Невозможно ли запустить тесты приемки в другой базе данных, или я делаю что-то неправильно?Codeception приемочного испытания, работающие на базе Dev вместо тестовой базы данных

acceptance.suite.yml

class_name: AcceptanceTester 
modules: 
    enabled: [ WebDriver, Db ] 

    config: 
    Db: 
     dsn: 'mysql:host=localhost;dbname=codeception' 
     user: 'root' 
     password: '' 
     dump: _data/dump.sql 
     populate: true 
     cleanup: false 
    WebDriver: 
     url: 'http://localhost:8080/myproject/frontend/web' 
     browser: 'firefox' 

env: 
    chrome: 
     modules: 
       config: 
         WebDriver: 
            browser: 'chrome' 

интерфейс \ codeception.yml

namespace: tests\codeception\frontend 
actor: Tester 
paths: 
    tests: . 
    log: _output 
    data: _data 
    helpers: _support 
settings: 
    bootstrap: _bootstrap.php 
    suite_class: \PHPUnit_Framework_TestSuite 
    colors: true 
    memory_limit: 1024M 
    log: true 
config: 
    test_entry_url: http://localhost:8080/myproject/web/index-test.php 

ответ

0

Если вы используете PhpBrowser или модуль WebDriver, они делают запросы на сайт под тест через HTTP и Codeception не контролирует конфигурацию и исполнение веб-сайта.

Только функциональные тесты (например, с использованием Yii2 module) могут изменять конфигурацию приложения.

configFile required - путь к файлу конфигурации приложения. Файл должен быть настроен для тестовой среды и вернуть конфигурационный массив.

1

Конечно, вы можете запускать приемочные испытания по тестовой базе данных!

Однако вам нужно будет настроить веб-сайт для использования тестовой базы данных при работе на другом URL-адресе, а также с помощью Codeception запустить тесты с тестовым URL-адресом. Я сделал это с Yii1, а также с некоторыми пользовательскими фреймворками.

Я вижу, что вы уже используете код для index-test.php. В Yii1 существует файл конфигурации test.php, где вы можете настроить соединение для тестовой базы данных, я полагаю, что Yii2 работает аналогичным образом.

Итак, найдите файл в Yii2, где нужно настроить тестовую базу данных, и вы готовы к работе!

Смежные вопросы