読者です 読者をやめる 読者になる 読者になる

Test::Skip::UnlessExistsExecutable - skips tests unless executable exists

テストを実行する際に、必要なプログラムが存在しなければ、テストをskipするモジュールを作ってました。Test::Requiresの実行プログラム版です。
http://github.com/dann/p5-test-skip-unlessexistsexecutable

# ExistsExetableという名前だと誤解を招くので、renameしてリリースし直しました。ExistsExecutableのほうは削除する予定です。

目的

目的は、以下のようなboilertemplateを書かなくてすむようにすることです。

Test::More;
BEGIN {
  do_i_have_all_my_optional_deps() ? plan skip_all : plan tests => 42
}

使い方

使い方は、以下のとおりです。path指定とPATHに存在するプログラム名のいずれかを、渡すことができます。それらが存在しない時には、テストをskipします。

import版

use Test::More tests => 1;
use Test::Skip::UnlessExistsExecutable qw(
    /usr/bin/rsync
    perl
);
use_ok 'Mouse';

method版

use Test::More tests => 1;
use Test::Skip::UnlessExistsExecutable; 

skip_all_unless_exists '/bin/sh';
skip_all_unless_exists 'perl';
ok 1;