【问题标题】:Writing a test for a Dist::Zilla minting module为 Dist::Zilla 铸币模块编写测试
【发布时间】:2011-04-04 23:48:28
【问题描述】:

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

有人能给我一些建议吗?有没有其他有测试的铸币模块?

【问题讨论】:

    标签: perl testing dist-zilla


    【解决方案1】:

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

    #!/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'); 完成。

    测试 minted dist 与常规 Dist::Zilla::Tester 测试没有太大区别,因此您可能希望阅读我在 writing a simple Dist::Zilla::Tester test 上写的博客。

    【讨论】:

      【解决方案2】:

      official Dist::Zilla tutorial 现在有a page on writing and testing new plugins。这涵盖了一般的插件,而不是专门的铸币插件,但是为铸币插件做这件事并没有什么特别或不同的地方。您可以按照建议查看t/minter.,看看它有多相似。

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

      【讨论】:

      • 为什么 Test::Dzil 现在超过 Dist::Zilla::Tester
      • Test::Dzil 是一组实用程序,可与 Dist::Zilla::Tester 结合使用并在其之上工作。
      猜你喜欢
      • 2013-05-03
      • 2015-08-18
      • 2020-08-17
      • 2019-10-03
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      相关资源
      最近更新 更多