2014年12月28日日曜日

[Perl] PODの記述を必須にする、および一部のメソッドに関する記述は任意にする方法

Pod::Coverageを使うと、作成したモジュールにPODが記述されていないとテストがこけるようにできます。メソッドにも当該メソッドに関するPODがないとこけます。

このテストは自然にPODを書くことが開発サイクルの習慣になるので、おおむねよいプラクティスだと考えます。 しかし、一部、ユーザにインタフェースを公開しない、内部で利用しているだけ等のPODを書きたくない(書くべきではない)メソッドがある場合、そのメソッドに関してはPODの記述を必須から外したいと思います。方法としては下記のようにします。 例で言えば、これでDESTROYとDEBUGメソッドはPODを書かなくてもテストを通るようになります(でも、コメントはちゃんと書きましょう)。

モジュールをModule::Starter で作成するとデフォルトでt/pod-coverage.tというテストが作成されます。このテストはPod::Coverageを使って開発したモジュールにてPODが書かれているかチェックしてくれますが、全メソッドに対するPODの記述を求めてしまうので、PODを書かないメソッドがあればalso_privateパラメータで適宜指定して、エラーにならないようにします。

モジュールのインストールをmake、make testで行う場合はt/pod-coverage.tはskipされてエラーにはならないのですが、Build、Build testで行う場合はエラーになりますので要注意です。モジュールを開発する際はmake test、Build testのどちらでもエラーにならないことを確認しましょう。

参考:
 ・Test::Pod::Coverageで関数の記述の試験を無視する方法 - サンプルコードによるPerl入門 ~ 安定と信頼のPerlを学ぼう ~
 ・ドキュメントをどうするのか - kuchimuraのメモ

0 件のコメント:

コメントを投稿