linkorb / transmogrifier
测试用例库和命令行工具
Requires
- phpunit/dbunit: ~1.3
- phpunit/phpunit: ~3.7
- symfony/console: ~2.4
Requires (Dev)
- sami/sami: ~1.0
- squizlabs/php_codesniffer: dev-master
This package is auto-updated.
Last update: 2024-08-29 03:37:33 UTC
README
Transmogrifier 是一个帮助在运行测试前设置数据库测试用例的工具。
你可以用以下方式使用它
- 作为一个简单的命令行工具(非常适合构建脚本和持续集成)
- 作为一个 PHP 库
- 作为一个 Behat 扩展,允许使用 Gherkin 语句进行自动化的 BDD 数据库测试
1. 命令行工具
你可以将 Transmogrifier 作为命令行工具使用(独立使用,或者通过 composer 作为你 PHP 项目的部分)。
独立使用
- 克隆此 git 仓库
- 运行
composer install
以安装所有依赖 - 运行
bin/transmogrifier --help
以查看可用命令列表
通过 composer 在你的 PHP 项目中
打开你的 composer.json
文件,并在 require
部分添加以下内容
"linkorb/transmogrifier": "dev-master"
你现在可以运行 vendor/bin/transmogrifier
。
将 transmogrifier 命令添加到现有的 Symfony/Console 应用程序中
将以下行添加到现有的 Symfony/Console 应用程序中,以启用 Transmogrifier 命令
$application->add(new \LinkORB\Transmogrifier\Command\DatasetApplyCommand());
可用命令
transmogrifier:datasetapply
通过命令行使用最有趣的是 transmogrifier:applydataset
命令。
你可以这样使用它
bin/transmogrifier transmogrifier:applydataset --dbname=test example/user.yml
此命令将确保 dbname
数据库包含在 example/user.yml
中指定的数据集
2. PHP 库
你可以非常容易地从你的 PHP 项目中使用 Transmogrifier 作为库。
通过 composer 安装库
打开你的 composer.json
文件,并在 require
部分添加以下内容
"linkorb/transmogrifier": "dev-master"
如何使用库
2 个主要类是
Dataset
:一个可以从文件加载数据集并将它们应用于数据库的类。Database
:与数据库的连接,提供初始化连接的帮助器。
以下是一个示例用法
$db = new Database(); // Optionally initialize db parameters by file, cli options, or explicit values $db->parseConf('/path/to/my/dbconf/test.conf'); $db->connect(); $dataset = new Dataset(); $dataset->loadDatasetFile('/path/to/my/dataset.yml'); $dataset->applyTo($db);
3. Behat 扩展
Behat 有一个可用的 Transmogrifier 扩展!
这允许你直接从你的 Behat .feature 文件中使用 Transmogrifier。
查看扩展及其文档在这里
支持的文件格式
数据集导入器基于 phpunit/dbunit。它目前支持以下文件格式
- YAML
- 平面 XML
- XML
- CSV
数据集加载器根据文件扩展名猜测格式。
请参考 example/
目录中的这些格式的数据集。PHPUnit 文档包含有关加载器的更多信息
数据库 .conf 文件
为了简化连接到你的数据库,Transmogrify 可以从简单的 .conf
文件中加载连接设置。
一个示例文件如下
name=test server=127.0.0.1 username=susie password=mrbun driver=mysql
你可以在所有 Transmogrifier 模式中使用这些 .conf
文件:命令行、Behat 或库。连接是通过 PDO
建立的,所以所有支持 PDO 的数据库都将工作。
示例数据集
examples/
目录包含一些你可以用来尝试 Transmogrifier 的数据集,了解它是如何工作的,并作为你自己的数据集的起点。
创建模式
示例将确保 2 个用户,'Calvin' 和 'Hobbes',注册在你的 user
表中。
在尝试这些之前,请使用以下 SQL 在你的 test
数据库中生成 user
表
CREATE TABLE user (id int, name varchar(16), email varchar(32), password varchar(32));
由 LinkORB 工程团队提供
查看我们其他项目,请访问 linkorb.com/engineering。
顺便说一句,我们在招聘!