@nqounetです。

今日の知見です。

そんなことも知らなかったのか、と思われるかもしれませんが、知りませんでした。

どうせすぐに忘れるので、忘れる前に備忘録。

諦めないで

Test::mysqldでは、base_dirを指定しない場合は、File::Tempのtempdirで一時的なディレクトリを作って、そこにデータ置き場を作ります。

File::TempのtempdirはFile::Specのtmpdirを利用して作成されますが、その作成場所は環境変数のTMPDIRで指定することができます。

ソースコードを読んでいて発見したのですが、後でドキュメントを確認するとちゃんと書いてありました…。

実行前に設定する

テストを実行するときにだけに設定できれば良いので、envを使って設定し実行します。

テストの前に読み書きの高速なRAMDRIVEを作成しておいて、TMPDIRでそのディレクトリを指定する、というような使い方ができますね。