Module :: Starter的manifest.t中的预期开发过程是什么?

时间:2011-05-20 02:27:32

标签: perl testing module manifest

Module::Starter初始化项目时,它会创建一个名为manifest.t的测试。

#!perl -T

use strict;
use warnings;
use Test::More;

unless ( $ENV{RELEASE_TESTING} ) {
    plan( skip_all => "Author tests not required for installation" );
}

eval "use Test::CheckManifest 0.9";
plan skip_all => "Test::CheckManifest 0.9 required" if $@;
ok_manifest();

使用Build test运行测试时,这是输出的一部分:

t\00-load.t ....... ok
t\boilerplate.t ... ok
t\manifest.t ...... skipped: Author tests not required for installation

我从狭义上理解结果($ENV{RELEASE_TESTING}未设置,因此跳过测试),但我并没有完全掌握全局。什么是预期的开发过程?我认为运行测试以确认我的模块的清单是准确的是个好主意。我应该设置该环境变量吗?如果是这样,在开发过程中的哪个阶段?

1 个答案:

答案 0 :(得分:4)

许多模块发行版都有测试,不检查代码是否有效,但是发布是否处于合适的发布状态。诸如MANIFEST是最新的,是否所有功能都已记录在POD中等等。

为了节省时间,除非设置了RELEASE_TESTING环境变量,否则可以编写这些测试以跳过它们自己。这是一个非正式的标准。这样,当人们安装模块时,这些测试不会运行,当作者只是检查代码更改是否破坏时,它们也不会运行。

在释放你的dist之前,你应该运行RELEASE_TESTING=1 make test(或Build等效物)。如果您使用Dist::Zilla(我强烈推荐),您可以使用dzil test --release运行发布测试。该标志也由TestRelease plugin自动设置,如果你使用dzil,你肯定会使用它。

通常用于控制测试的其他环境变量是AUTOMATED_TESTING和AUTHOR_TESTING。 AUTOMATED_TESTING由运行自动烟雾测试的CPAN testers设置。