为Dist :: Zilla铸造模块编写测试

时间:2010-08-27 19:35:43

标签: perl testing dist-zilla

现在是我为Dist::Zilla::Plugin::Catalyst编写功能测试的时候了。但我意识到我不知道从哪里开始。我知道我必须拥有我的测试套件识别的自定义铸造配置文件,并且我可能只是测试以确保使用合适的烫发输出所有正确的文件。我完全不确定你使用什么DZ模块来包含铸造配置文件,或者如何开始铸造薄荷,然后检查输出(因为我怀疑它将使用临时目录)。

有人可以给我一些指示吗?有没有其他铸造模块,有测试?

2 个答案:

答案 0 :(得分:2)

这是一个非常基本的测试文件。

#!/usr/bin/perl
use strict;
use warnings;
use Dist::Zilla::Tester;
use Test::More;
use Path::Class;

my $tzil = Minter->_new_from_profile(
    # which profile to run e.g. dzil new  -p
    [ Default => 'default' ],
     # app name
    { name => 'CatApp', },
    # location of whats esessntially your tests ~/.dzil
    { global_config_root => dir('corpus/mint')->absolute },
);

# same as running dzil new
$tzil->mint_dist;

# mint root, obviously getting the location of the temporary repo creation
my $mr   = dir( $tzil->tempdir )->subdir('mint');

# test to see if CatApp.pm exists
ok( -e $mr->subdir('lib')->file('CatApp.pm'), 'CatApp.pm exists');
done_testing

当然,对于许多真正的测试,您还需要阅读铸造文件。这可以使用$tzil->slurp_file('file');完成。

在常规Dist::Zilla::Tester测试中测试一个minted dist没什么不同,所以你可能希望阅读我在writing a simple Dist::Zilla::Tester test上写的博客。

答案 1 :(得分:1)

official Dist::Zilla tutorial现在有a page on writing and testing new plugins。这通常包括插件,而不是专门用于制作插件,但是对于制作插件来说,没有什么特别的或不同的。您可以按照建议查看t/minter.,看看它有多相似。

Test::DZil现在随Dist :: Zilla一起提供并安装供其他插件使用,我用它来测试我的所有非核心插件。