现在是我为Dist::Zilla::Plugin::Catalyst编写功能测试的时候了。但我意识到我不知道从哪里开始。我知道我必须拥有我的测试套件识别的自定义铸造配置文件,并且我可能只是测试以确保使用合适的烫发输出所有正确的文件。我完全不确定你使用什么DZ模块来包含铸造配置文件,或者如何开始铸造薄荷,然后检查输出(因为我怀疑它将使用临时目录)。
有人可以给我一些指示吗?有没有其他铸造模块,有测试?
答案 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一起提供并安装供其他插件使用,我用它来测试我的所有非核心插件。