h2xsとmake
単体テストをきちんとやりたい、と思って色々探していたらこんな記事を発見。
http://www.sixapart.jp/techtalk/2007/02/how_to_make_perl_module.html
まずMakeFile関連をきちんと調べておく。
h2xs -X -a -n Foo::Bar::Baz
を実行すると、カレントにFoo-Bar-Bazというディレクトリが生成される。
中身は以下の通り。
kotaro@pm$ ll Foo-Bar-Baz/ 合計 24 -rw-rw-r-- 1 kotaro kotaro 164 11月 4 20:39 Changes -rw-rw-r-- 1 kotaro kotaro 71 11月 4 20:39 MANIFEST -rw-rw-r-- 1 kotaro kotaro 549 11月 4 20:39 Makefile.PL -rw-rw-r-- 1 kotaro kotaro 1174 11月 4 20:39 README drwxrwxr-x 3 kotaro kotaro 4096 11月 4 20:39 lib drwxrwxr-x 2 kotaro kotaro 4096 11月 4 20:39 t
use 5.008005; use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => 'Foo::Bar::Baz', VERSION_FROM => 'lib/Foo/Bar/Baz.pm', # finds $VERSION PREREQ_PM => {}, # e.g., Module::Name => 1.1 ($] >= 5.005 ? ## Add these new keywords supported since 5.005 (ABSTRACT_FROM => 'lib/Foo/Bar/Baz.pm', # retrieve abstract from module AUTHOR => 'A. U. Thor <kotaro@localdomain>') : ()), );
perl Makefile.PL
を実行するとMakeFileが生成される。あとは
make make test make install
を実行すると、makeコマンドがMakeFileを読みこみ、よきに計らってくれると。
ざくっと言うと
- make
- コンパイル
- make test
- テスト
- t/の配下にあるテストを実行する
- make install
- インストール
ユニットテストの実行
実行はmake testでやればいいのかなぁと考えていたら、proveというコマンドがあるらしい。
というかmake testの内部で呼ばれている。
prove -I ~/module_path/ -vl t/test_case_path/