All Test::Successful

xaicron
2011-12-25

はじめに

こんにちは、xaicron です。みんな、僕のグラビア写真は買ってくれたかな?買ってない人は WEB+DB Press vol.66 を今すぐゲットだぜ!!

さて、ついに長かった Test Track も最終日がやって参りました!みなさんはどうせリア充を尻目にリナカフェの閉店を見たり、独り者同士でなんとなーく集まってお酒飲んだり、もしくは僕のように一人寂しく Advent Calendar を書いているのでしょうね!!その昔、コンビニでゆでたまご買って間違って「あ、あっためてください」っていっちゃったことを何故か思い出しました。

というわけで、クリスマスぐらいはせめてテストを書きたくないし、そもそもコケたテストとか見たくないわけですね。ですので、僕からのスペシャルなクリスマスプレゼンツ!!その名も Test::Successful だぜ!ベイベー!!

これはなに?

これはあれですね。テストがコケてると悲しいし、テストがコケたまま生活してるとマジ息苦しい。そんなあなたにやすらぎのひとときを。「それは昔祖母の家で食べた温かで優しい味わい。心にも体にも優しい和の料理。梅とちりめんじゃこご飯と季節の野菜たっぷりの煮物弁当 480kcal」にも勝るとも劣らない、一品となっております。

つまり、全部のテストを強制的にサクセッ(ク)スフルにしちゃうという素晴らしいモジュールです!

使い方は超絶に簡単で、テストの最初で use するだけです。prove を使えば、

$ prove -cr --exec "perl -Ilib -MTest::Successful" t

とかするだけ!こっそりと CI ツールの prove の設定を書き換えればその瞬間からオールグリーンまちがいなし!!素晴らいいですね。テストが通っているので、休日とかも安心です。

テストが遅い場合も安心

ちなみに、テストを書いていると、たまに

while (1) {
    fail "fxxk";
}

みたいなコードを書いてしまうと思います。この場合、テストが延々とコケ続けて終わりませんね。でも Test::Successful なら超安心!!use のときに、':fast' って引数に与えてあげれば、瞬殺です。

prove なら

$ prove -cr --exec "perl -Ilib -MTest::Successful=:fast" t

て感じですね。

というわけで

Test::Successful を使えば、テストが常に全部通っているという、超絶安心生活が約束されます!素晴らしいですね!

さっき書いたばっかりなので、コードは github にしかありませんけどご容赦!

https://github.com/xaicron/p5-Test-Successful

...というのは嘘なので、みなさん信用しないでください。ただのジョークモジュールなので、Acme ネームスペースにあるべきでしょう。

まとめ

はい、というわけで、25回に分けてやってきました Test Track ですが、無事に完走することが出来ました!執筆者++ 読者++

一口にテストといっても色々とありますが、結構バリエーションゆたかな記事が出てきてよかったよかった思っています。当然まだまだテストの道は厳しく辛く険しいものですが、皆さんのこれからのテストライフに一役買うことができていれば本望です。

また、いままでテストを書いたことがないよんって人も、いままでの記事をみて、「いっちょやってみっか」って気持ちになってくれると嬉しいです。

テストを書くというのは、最初のうちは色々と戸惑うこともあるかもしれませんが、「自分の書いたコードに責任を持つ」というとちょっと重苦しいかもしれませんが、なんというか、「書いた人も使う人も一定の安心感を得る」ためのいいの方法だと思っています。

テストコードもコードなので、楽しんで書いていきたいですね。

ではでは、また会う日まで。ごきげんよう!!