iamapen/commentable-data-set
Composer 安装命令:
composer require iamapen/commentable-data-set
包简介
Commentable CSV DataSet for DBUnit
README 文档
README
phpunit/dbunit 用の DataSet や Operation の詰め合わせ。
iamapen/excel-friendly-data-set の後継。
DBレコードを「1列目がコメントのCSV」で表現するための CsvDataSet など。
Install
UT用なので require --dev になる。
composer require --dev iamapen/commentable-data-set
手動で composer.json に書く場合
require-dev: {
"iamapen/commentable-data-set ": "^4.0"
}
Usage
DataSet
DataSet/CommentableDataSet
CSVの左n列をコメント列扱いとして、無視する(取り込まない) 機能を持つ CsvDataSet。
テストデータに対してのコメント列として使える。
$ds = new \Iamapen\CommentableDataSet\DbUnit\DataSet\CommentableCsvDataSet(); $ds->addTable('users', '/PATH/TO/users.csv'); $ds->setIgnoreColumnCount(1); // 1列目をコメント列とする
CSVの例
最初の列はコメント,id,user_name 男性ユーザ,1,taro soramame 女性女性ユーザ,2,arare norimaki 1ヶ月以上ログインしてないユーザ,3,akane kimidori 削除されるユーザ,4,gajira norimaki
もちろん他の DataSet との比較もできる
class XxxTest extends \PHPUnit\DbUnit\TestCase { function testXXX() { $this->assertDataSetsEqual($ds1, $ds2); } }
DataSet/ExcelCsvDataSet (deprecated)
最初に作成した DataSet。
Excelで扱いやすい UTF-16-LE(+BOM) のCSVを UTF-8 に変換しながら取り込むもの。
現在は出番はないと思われる。
2007年作成当時は UTF-8 の CSVを満足に編集できるソフトが少ないという経緯で作られた。
しかし現在は LibreOffice-Calc 等のエディタでUTF8のCSVを容易に編集できるため、
わざわざExcel用に UTF-16 で保存しておくこともない。
以下、旧 README のまま。
Excelでは UTF-8 のcsvをまともに編集(とくに保存)ができないが、 UTF-16-LE(+BOM) にすれば「D&Dで開く」「Ctrl+S」で保存など比較的自然に編集でき、 テストデータにUnicode文字も使える。
代わりにテストコード内で UTF-16 -> UTF-8 変換が必要になるので、これを行う。
なおExcelからは"Unicode", sakuraエディタでは"Unicode", vimでは"utf16le", mbstringでは"UTF-16"で扱える。 新規CSV作成時はテキストエディタでUTF-16のファイルを作成してそれをExcelにD&Dするのが楽そう。
xxTest.php
$ds = new Iamapen\ExcelFriendlyDataSet\Database\DataSet\ExcelCsvDataSet();
Operation
Operation/MySqlBulkInsert
PHPUnit_Extensions_Database_Operation_Insert のバルクインサート版。
MySQL専用。(一応SQLiteでも動く)
あまりに入力CSVが大きいと、max_allowed_packet の制限にかかる可能性がある。これは課題。
use Iamapen\CommentableDataSet\DbUnit\DataSet\CommentableCsvDataSet; use Iamapen\CommentableDataSet\DbUnit\Operation\MySqlBulkInsert; // DataSet $ds = new CommentableCsvDataSet(); $ds->addTable('/PATH/TO/CSV'); // 実行 (TRUNCATE -> BULK INSERT) $con = new \PHPUnit\DbUnit\Database\DefaultConnection($pdo); \PHPUnit\DbUnit\Operation\Factory::TRUNCATE()->execute($con, $ds); (new MySqlBulkInsert())->execute($con, $ds);
注意点・課題
-
Operation/MySqlBulkInsert
- あまりに入力CSVが大きいと
max_allowed_packetの制限にかかる可能性がある。
- あまりに入力CSVが大きいと
-
DataSet/ExcelCsvDataSet
- もはや非推奨。
UTF-8 で保存して、UTF-8 対応のエディタで編集するのがよい。例えば LibreOffice の Calc でできる。
Excelでやろうというのは、まともなエディタが存在しなかった時代の古いアプローチ。 - 文字コード変換をストリームでやったほうがいい
- もはや非推奨。
-
正式なプロダクトでの運用実績が少ないため、品質は趣味レベル。
バージョン
| php | phpunit | dbunit | |
|---|---|---|---|
| 5.0.x | 7.2+ | 8.2, 9.x | 5.x |
| 4.0.x | 7.1+ | 7.x | 4.x |
| 3.0.x | 7.0+ | 6.x | 3.x |
| 2.0.x | 5.4+, 7.0+ | 4.x, 5.x | 2.x |
| 1.2.x | 5.3+ | 3.x, 4.x | 1.x |
| 1.1.x | 5.3+ | 3.x, 4.x | 1.x |
| 1.0.x (EOL) | 5.3+ | 3.x | 1.x |
iamapen/commentable-data-set 适用场景与选型建议
iamapen/commentable-data-set 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 183 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 01 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「phpunit」 「dbUnit」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 iamapen/commentable-data-set 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 iamapen/commentable-data-set 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 iamapen/commentable-data-set 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
DbUnit fork supporting PHPUnit 10/11/12
HiDev plugin for PHPUnit
Testing Suite For Lumen like Laravel does.
A cli tool which generates unit tests.
PHPUnit DbUnit Native Array-based Fixtures
DbUnit fork supporting PHPUnit 10/11
统计信息
- 总下载量: 183
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-01-18