PHPUnitにてSQLSTATE[HY000] [2002] No such file or directoryエラー

本日Dockerコンテナにて

vendor/bin/phpunit <テストファイルのパス>

と走らせようとしたところ、以下のようなエラーに遭遇した。

Exception: Unable to insert fixtures for <my test case path> test case.
SQLSTATE[HY000] [2002] No such file or directory in [<some php file>, line 380]

これはシンプルで、app.phpDatasources'test' =>の部分にミスがあってsqlにつなげていないようだった。

いやちゃんと設定してるぞ?って自分も思ったのだが相変わらず'host' =>の部分を間違えていたことに気づいたので直したらうまくいった。

できれば今後の自分のために具体的にどこを間違えたのか書きたいのだが、外部と共有するのは危ないだろうと思うのでやめておく。

   /* defaultのテスト */
   'test' => [
        'className' => 'Cake\Database\Connection'
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => XXX.XXX.XXX.XXX, //自分はここを間違えていた
        //'port' => 'non_standard_port_number',
        'username' => 'username',
        'password' => 'passwd',
        'database' => 'test',
        'encoding' => 'utf8mb4',
        'timezone' => 'Asia/Tokyo',
        'flags' => [],
        'cacheMetadata' => true,
        'log' => false,
     'url' => env('DATABASE_TEST_URL', null),

上記の気をつけるべきことは

  1. hostが正しいか(→自分はここを間違えていた)
  2. usernameが正しいか
  3. passwordが正しいか
  4. databaseが正しいか

である。ダブルチェック大事。