1

背景 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以外のものを使用する必要がありますか?

4

0 に答える 0