plugin-start.plを使って自作プラグインのテスト用スクリプトをつくってみた。
TinyURLを操作するPlagger用フィルタにid:otsuneさんから「plagger/tools/plugin-start.pl Filter::TinyURLで依存やtestも書いちゃうのはどうか」ってコメントをいただいたのでやってみた。というか、正直これが何のことかよくわからなかったので、まずは調査。
「tools/plugin-start.pl Foobar::Hoge」でPlaggerプラグインのひな形が出来るようになったによるとどうもプラグインの依存パッケージやテストコードのひな形をディレクトリ構造ごと作成してくれるスクリプトがplugin-start.plだということ。
cpanからインストールした環境ではどこにあるのかわからなかった(インストールされてなかった)ので、CPANのPlaggerから丸ごとダウンロードして中にあるtoolsごとコピーしました。
とりあえず実行してみると、
$ ./plugin-start.pl Filter::TinyURL Creating lib/Plagger/Plugin/Filter/TinyURL.pm Creating Filter-TinyURL.yaml Creating t/plugins/Filter-TinyURL/base.t
という感じでひな形となるファイルが作成されます。中身はこんな感じ。
- TinyURL.pm
- プラグイン本体。先日のエントリからコピペ。
- Filter-TinyURL.yaml
- 依存関係を書くファイル。実行に必要なパッケージを書く。
- base.t
- テスト用のスクリプトを書く。
作成に関してはPlaggerのcpanアーカイブとかを参考にして、とりあえず見よう見まねで書いています。間違ってるところがあったら突っ込んでくださいませ。また、ふしはらかんの四方山話さんの「 - Publish::HatenaGraphを変更してみる」を参考にさせていただきました。
name: Filter::TinyURL author: Toshi depends: URI::Find: 0 URI::http: 0 WWW::Shorten::TinyURL: 0
このパッケージのあとの「:0」ってのの意味がよくわからない。
t/plugins/Filter-TinyURL/base.t
use strict; use t::TestPlagger; test_plugin_deps; plan 'no_plan'; run_eval_expected; __END__ === Loading Filter::TinyURL --- input config plugins: - module: CustomFeed::Debug config: title: foo entry: - title: bar link: http://tinyurl.com/3yr2fs - module: Filter::TinyURL config: be: long --- expected is $context->update->feeds->[0]->entries->[0]->{link}, http://d.hatena.ne.jp/toshi123/
Loading Filter::TinyURL以下にテスト用のスクリプトとその出力結果を書く。ここではTinyURLから元のURLに戻す設定のyamlを書いてみた。
やることはこれだけ。すごく簡単にテスト用のスクリプトを作ることができるので、野良プラグインを作るときにはちょっと試してみると良い感じかも。