Yii2 验收测试。每次测试后回滚在验收测试中所做的所有更改
Yii2 acceptance tests. Rollback all changes that were made in acceptance test after each test
我需要在每次验收测试后恢复通过验收测试在数据库中所做的所有更改。
如 Yii2 文档中所述,您应该为 acceptance.suite.yml
中的 Yii2
模块设置 transaction: false
。
你应该在 codeception.yml
.
中为 Db
模块使用 cleanup: true and transaction: true
实际: 验收测试在数据库中所做的更改 未 还原。
预期: 验收测试在数据库中所做的更改被还原。
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
acceptance.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
Yii2 模块对验收测试中应用程序代码的执行没有影响。
无法知道您的应用程序对数据库进行了哪些更改,因此您唯一的选择是从备份中恢复数据库。
为了在测试前让数据库处于已知状态,您可以使用 DB module 的 dump
选项加载 SQL 文件,但不要对生产数据库执行此操作.
我需要在每次验收测试后恢复通过验收测试在数据库中所做的所有更改。
如 Yii2 文档中所述,您应该为 acceptance.suite.yml
中的 Yii2
模块设置 transaction: false
。
你应该在 codeception.yml
.
Db
模块使用 cleanup: true and transaction: true
实际: 验收测试在数据库中所做的更改 未 还原。
预期: 验收测试在数据库中所做的更改被还原。
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
acceptance.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
Yii2 模块对验收测试中应用程序代码的执行没有影响。
无法知道您的应用程序对数据库进行了哪些更改,因此您唯一的选择是从备份中恢复数据库。
为了在测试前让数据库处于已知状态,您可以使用 DB module 的 dump
选项加载 SQL 文件,但不要对生产数据库执行此操作.