Приемочные испытания Yii2.Откатить все изменения, которые были сделаны в приемочном тесте после каждого теста - PullRequest
0 голосов
/ 12 декабря 2018

Мне нужно отменить все изменения, внесенные в базу данных, приемочным тестом после каждого приемочного теста.

Как описано в документации Yii2, вы должны установить transaction: false для Yii2 модуля в acceptance.suite.yml.И вы должны использовать cleanup: true and transaction: true для Db модуля в codeception.yml.

Факт: изменения, которые были выполнены приемочным тестом в базе данных, не отменены.

Ожидается: изменения, выполненные приемочным тестом в базе данных, отменяются.

codeception.yml

namespace: common\tests
actor_suffix: Tester
paths:
    tests: tests
    output: tests/_output
    data: tests/_data
    support: tests/_support
settings:
    bootstrap: _bootstrap.php
    colors: true
    memory_limit: 1024M
modules:
    config:
        Yii2:
            configFile: 'config/test-local.php'
        Db:
            dsn: '%TEST_DB_TYPE%:host=%TEST_DB_HOST%;port=%TEST_DB_PORT%;dbname=%TEST_DB_NAME%'
            user: '%TEST_DB_USERNAME%'
            password: '%TEST_DB_PASSWORD%'
            cleanup: true
            transaction: true
params:
    - config/params-local.php

принятие.suite.yml

suite_namespace: frontend\tests\acceptance
actor: AcceptanceTester
modules:
  enabled:
    - WebDriver
    - Yii2
  config:
    Yii2:
      part: init
      transaction: false
      cleanup: true
    WebDriver:
      browser: chrome
      url: 'http://mysite.dev/'
      port: 9515 # ChromeDriver port
      window_size: 1920x1080
      clear_cookies: true
      restart: true
      capabilities:
        chromeOptions:
          args: ["--headless", "--disable-gpu"]
          binary: "/usr/bin/google-chrome-stable"

extensions:
  enabled:
  - Codeception\Extension\RunProcess:
    - chromedriver --url-base=/wd/hub

1 Ответ

0 голосов
/ 13 декабря 2018

Модуль Yii2 не влияет на выполнение кода вашего приложения в приемочных тестах.

Невозможно узнать, какие изменения были внесены в базу данных вашим приложением, поэтому единственный вариант - восстановить базу данных из резервной копии.

Чтобы иметь базу данных в известном состоянии перед тестированием, вы можете загрузить файл SQL, используя параметр dump Модуль БД , но не делайте этого для вашей производственной базы данных.

...