vjik / codeception-db-populator
Codeception DB模块的数据填充器
1.1.1
2024-07-18 10:50 UTC
Requires
- php: ^8.0
- ext-pdo: *
- codeception/codeception: ^5.0
- codeception/module-db: ^3.0
Requires (Dev)
- vimeo/psalm: ^5.25
- vlucas/phpdotenv: ^5.4
This package is auto-updated.
Last update: 2024-09-18 11:08:52 UTC
README
Codeception DB模块数据填充器
Codeception DB模块插件,帮助您调整数据库填充。因此,对于测试,您只能加载所需的表或行。结果它大大减少了总执行时间。
要求
- PHP 8.0或更高版本。
- Codeception 5.0或更高版本。
- Codeception Module DB 3.0或更高版本。
安装
可以使用composer安装此包
composer require vjik/codeception-db-populator --dev
通用用法
在套件中启用模块Db
和DatabasePopulator
插件
modules: enabled: - Db: dsn: 'mysql:host=%DB_HOST%;dbname=%DB_NAME%' user: '%DB_USERNAME%' password: '%DB_PASSWORD%' - Vjik\Codeception\DatabasePopulator\Module: dumpsPath: 'tests/_data/dumps' rowsPath: 'tests/_data/rows'
创建包含表结构记录和/或测试中使用的数据的SQL备份。将备份放入选项中指定的路径(例如,tests/_data/dumps
)。
创建用于填充数据库表的行集。行集是PHP文件,返回格式为table => rows
的数组。例如
<?php return [ 'author' => [ [ 'id' => 1, 'name' => 'Ivan', ], [ 'id' => 2, 'name' => 'Petr', ], ], 'post' => [ [ 'id' => 1, 'author_id' => 2, 'name' => 'First post', ], [ 'id' => 2, 'author_id' => 2, 'name' => 'My history', ], ], ];
您可以获得类似以下的结构
tests/
_data/
dumps/
user-management.sql
blog.sql
catalog.sql
rows/
users.php
authors.php
blog-categories.php
posts-with-categories.php
在测试中加载备份和行集
final class BlogTest extends Unit { public function testCreatePost(): void { $this->tester->loadDump('blog'); $this->tester->loadRows('authors'); ... } }
操作
loadDump()
将指定的备份加载到数据库中。在加载备份之前,将清理数据库。
$I->loadDump('blog'); // load one dump $I->loadDump('blog', 'catalog'); // load several dumps
loadRows()
将指定的行集加载到数据库中。
$I->loadRows('posts'); // load one set $I->loadRows('users', 'comments'); // load several sets
配置
dumpsPath
(必需)- 存储备份的目录的相对路径(例如,tests/_dump
)。rowsPath
(必需)- 存储行集的目录的相对路径(例如,tests/_rows
)。preloadDump
- 在运行套件之前预加载的备份。preloadRows
- 在运行套件之前预加载的行集。
测试
单元和集成测试
该包与Codeception进行了测试。对于测试需要配置MySQL数据库
- 主机:
127.0.0.1
- 名称:
db_test
- 用户:
root
- 密码:
root
要运行测试
./vendor/bin/codecept run
静态分析
代码使用Psalm进行了静态分析。要运行静态分析
./vendor/bin/psalm
许可证
Database Populator for Codeception DB Module是免费软件。它根据BSD许可证条款发布。有关更多信息,请参阅LICENSE
。