背景 I: phpunit の *.phpt
*.phpt
最近、PhpUnit のサポートに関する記事を読みました:
https://www.moxio.com/blog/32/start-testing-with-phpt-tests-in-phpunit
ここでの大きな利点:
- phpunit ですぐにサポートされるため、これらのファイルを検出して処理するためのカスタム コードは必要ありません。
- 誰もが同意しているように見える共通のフォーマット。
- 特定の *.phpt を cli パラメーターとして直接指定できます。
典型的な *.phpt ファイルは次のようになります。
--TEST--
Basic arithmetic - addition
--FILE--
<?php
var_dump(42 + 1);
?>
--EXPECT--
int(43)
背景 II: 自己更新フィクスチャ
それより前に、cli 変数が存在する場合に独自のフィクスチャ ファイルを更新 (= 上書き) できる単体テストについて読みました:
https://tomasvotruba.com/blog/2020/07/20/how-to-update-hundreds -of-test-fixtures-with-single-phpunit-run/
次の cli コマンドは、失敗したテストのフィクスチャの「予期される」部分を上書きします。
$ UPDATE_TESTS=1 ./vendor/bin/phpunit
次に、git diff を確認し、必要な機能の変更として変更を受け入れるか、動作を修正します。
この記事で提案されているフィクスチャ ファイルの形式は、*.phpt
ファイル形式と非常によく似ていますが、最終的に形式は完全に任意で、プロジェクト固有のものにすることができます。
利点:
- 空の「--EXPECT--」セクションから開始し、この部分を自動的に生成します。
- バグが修正された後、または BC を破る変更が導入されたときなど、動作の変更後にテストを自動的に更新します。
- 動作がまだ安定していない初期の開発中に、フィクスチャを頻繁に更新します。
- cli diff 出力からのコピー/貼り付けはもう必要ありません。
短所:
- phpunit の組み込みサポートはありません。カスタム コードが必要です。複数のプロジェクトで実行したい場合、これはうまくスケーリングしません。
- *.phpt ファイルを cli パラメーターとしてターゲットにすることはできません。
質問
これらの *.phpt テスト ファイルを phpunit で自動更新する組み込みの方法はありますか?
または、おそらくphpunit以外のものを使用する必要がありますか?