2

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

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

4

2 回答 2

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 与常规Dist::Zilla::Tester测试没有太大区别,因此您可能希望阅读我写的关于编写简单 Dist::Zilla::Tester 测试的博客。

于 2010-12-12T17:59:45.590 回答
1

官方 Dist::Zilla 教程现在有一个关于编写和测试新插件的页面。这涵盖了一般的插件,而不是专门的铸币插件,但是为铸币插件做这件事并没有什么特别或不同的地方。您可以t/minter.按照建议查看 ,看看它有多相似。

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

于 2011-05-05T14:03:28.460 回答