{"id":15014508,"url":"https://github.com/iamapen/dbunit-commentabledataset","last_synced_at":"2026-01-04T20:34:59.264Z","repository":{"id":56988051,"uuid":"166073464","full_name":"iamapen/dbunit-CommentableDataSet","owner":"iamapen","description":"Commentable CSV Data Set for DBUnit","archived":false,"fork":false,"pushed_at":"2020-02-05T20:11:01.000Z","size":106,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"5.0.x","last_synced_at":"2025-03-22T13:16:41.332Z","etag":null,"topics":["csv","dbunit","phpunit"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamapen.png","metadata":{"files":{"readme":"README.md","changelog":"changelog-1.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-16T16:32:23.000Z","updated_at":"2020-02-05T20:09:23.000Z","dependencies_parsed_at":"2022-08-21T12:50:29.209Z","dependency_job_id":null,"html_url":"https://github.com/iamapen/dbunit-CommentableDataSet","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamapen%2Fdbunit-CommentableDataSet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamapen%2Fdbunit-CommentableDataSet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamapen%2Fdbunit-CommentableDataSet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamapen%2Fdbunit-CommentableDataSet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamapen","download_url":"https://codeload.github.com/iamapen/dbunit-CommentableDataSet/tar.gz/refs/heads/5.0.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244959458,"owners_count":20538629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csv","dbunit","phpunit"],"created_at":"2024-09-24T19:45:42.918Z","updated_at":"2026-01-04T20:34:59.213Z","avatar_url":"https://github.com/iamapen.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"dbunit Commentable DataSet\n===============\n\nphpunit/dbunit 用の DataSet や Operation の詰め合わせ。  \n[iamapen/excel-friendly-data-set](https://packagist.org/packages/iamapen/excel-friendly-data-set) の後継。\n\nDBレコードを「1列目がコメントのCSV」で表現するための CsvDataSet など。  \n\n[![CircleCI](https://circleci.com/gh/iamapen/dbunit-CommentableDataSet.svg?style=shield)](https://circleci.com/gh/iamapen/dbunit-CommentableDataSet)\n\nInstall\n=======\n\nUT用なので `require --dev` になる。\n\n```bash\ncomposer require --dev iamapen/commentable-data-set\n```\n\n手動で composer.json に書く場合\n```\nrequire-dev: {\n  \"iamapen/commentable-data-set \": \"^4.0\"\n}\n```\n\nUsage\n=====\n\n## DataSet\n\n### DataSet/CommentableDataSet\nCSVの左n列をコメント列扱いとして、無視する(取り込まない) 機能を持つ CsvDataSet。  \nテストデータに対してのコメント列として使える。\n\n```php\n$ds = new \\Iamapen\\CommentableDataSet\\DbUnit\\DataSet\\CommentableCsvDataSet();\n$ds-\u003eaddTable('users', '/PATH/TO/users.csv');\n$ds-\u003esetIgnoreColumnCount(1);    // 1列目をコメント列とする\n```\nCSVの例\n```csv\n最初の列はコメント,id,user_name\n男性ユーザ,1,taro soramame\n女性女性ユーザ,2,arare norimaki\n1ヶ月以上ログインしてないユーザ,3,akane kimidori\n削除されるユーザ,4,gajira norimaki\n```\n\nもちろん他の DataSet との比較もできる\n```php\nclass XxxTest extends \\PHPUnit\\DbUnit\\TestCase {\n  function testXXX() {\n      $this-\u003eassertDataSetsEqual($ds1, $ds2);\n  }\n}\n```\n\n\n### DataSet/ExcelCsvDataSet (deprecated)\n\n最初に作成した DataSet。  \nExcelで扱いやすい UTF-16-LE(+BOM) のCSVを UTF-8 に変換しながら取り込むもの。  \n現在は出番はないと思われる。\n\n2007年作成当時は UTF-8 の CSVを満足に編集できるソフトが少ないという経緯で作られた。  \nしかし現在は LibreOffice-Calc 等のエディタでUTF8のCSVを容易に編集できるため、\nわざわざExcel用に UTF-16 で保存しておくこともない。\n\n\n以下、旧 README のまま。\n\n\u003e Excelでは UTF-8 のcsvをまともに編集(とくに保存)ができないが、\nUTF-16-LE(+BOM) にすれば「D\u0026Dで開く」「Ctrl+S」で保存など比較的自然に編集でき、\nテストデータにUnicode文字も使える。\n\u003e \n\u003e 代わりにテストコード内で UTF-16 -\u003e UTF-8 変換が必要になるので、これを行う。\n\u003e \n\u003e \n\u003e なおExcelからは\"Unicode\", sakuraエディタでは\"Unicode\", vimでは\"utf16le\", mbstringでは\"UTF-16\"で扱える。\n\u003e 新規CSV作成時はテキストエディタでUTF-16のファイルを作成してそれをExcelにD\u0026Dするのが楽そう。\n\u003e \n\u003e xxTest.php\n\u003e ```php\n\u003e $ds = new Iamapen\\ExcelFriendlyDataSet\\Database\\DataSet\\ExcelCsvDataSet();\n\u003e ```\n\n\n## Operation\n\n### Operation/MySqlBulkInsert\n`PHPUnit_Extensions_Database_Operation_Insert` のバルクインサート版。  \nMySQL専用。(一応SQLiteでも動く)\n\nあまりに入力CSVが大きいと、`max_allowed_packet` の制限にかかる可能性がある。これは課題。\n\n```php\nuse Iamapen\\CommentableDataSet\\DbUnit\\DataSet\\CommentableCsvDataSet;\nuse Iamapen\\CommentableDataSet\\DbUnit\\Operation\\MySqlBulkInsert;\n\n// DataSet\n$ds = new CommentableCsvDataSet();\n$ds-\u003eaddTable('/PATH/TO/CSV');\n\n// 実行 (TRUNCATE -\u003e BULK INSERT)\n$con = new \\PHPUnit\\DbUnit\\Database\\DefaultConnection($pdo);\n\\PHPUnit\\DbUnit\\Operation\\Factory::TRUNCATE()-\u003eexecute($con, $ds);\n(new MySqlBulkInsert())-\u003eexecute($con, $ds);\n```\n\n\n# 注意点・課題\n- Operation/MySqlBulkInsert\n  - あまりに入力CSVが大きいと `max_allowed_packet` の制限にかかる可能性がある。\n\n- DataSet/ExcelCsvDataSet\n  - もはや非推奨。  \n    UTF-8 で保存して、UTF-8 対応のエディタで編集するのがよい。例えば LibreOffice の Calc でできる。  \n    Excelでやろうというのは、まともなエディタが存在しなかった時代の古いアプローチ。\n  - 文字コード変換をストリームでやったほうがいい\n\n- 正式なプロダクトでの運用実績が少ないため、品質は趣味レベル。\n\n\n# バージョン\n|             | php        | phpunit  | dbunit |\n|-------------|------------|----------|--------|\n| 5.0.x       | 7.2+       | 8.2, 9.x | 5.x    |\n| 4.0.x       | 7.1+       | 7.x      | 4.x    |\n| 3.0.x       | 7.0+       | 6.x      | 3.x    |\n| 2.0.x       | 5.4+, 7.0+ | 4.x, 5.x | 2.x    |\n| 1.2.x       | 5.3+       | 3.x, 4.x | 1.x    |\n| 1.1.x       | 5.3+       | 3.x, 4.x | 1.x    |\n| 1.0.x (EOL) | 5.3+       | 3.x      | 1.x    |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamapen%2Fdbunit-commentabledataset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamapen%2Fdbunit-commentabledataset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamapen%2Fdbunit-commentabledataset/lists"}