Test::mysqld 0.17 でテストがもっと簡単になる話

Test::mysqldというモジュールがあって、MySQLを使うテストを簡単に書けるので好評なわけですが、今回これに copy_data_from って、既存のデータディレクトリをコピーして mysqld を起動するオプションを足しました。

このオプションを使うことで、以下のように MySQL データベースからコピーしたデータを使うテストを書くことができるようになっています。

use Test::mysqld;

my $mysqld = Test::mysqld->new({
    my_cnf => {
        'skip-networking' => '',
    },
    copy_data_from => 't/mysql.data', # mysqld の data ディレクトリをコピーしたやつ
}) or die $Test::mysqld::errstr;

my $dbh = DBI->connect($mysqld->dsn(dbname => 'myapp'))
    or die $DBD::errstr;

... # 以下テストコード

説明あきたのであとは perldoc 読んでください。