最近,Perl世界出现了一个新的伟大事物。在很长一段时间里库包中的文件夹t
包含测试。现在有一个包含作者测试的更多文件夹xt
。中不需要xt
测试库安装的过程,但它有助于库autor确保代码很棒。
Perl附带了一个运行测试的spiptprove
。如果你跑步不带参数的prove
将执行文件夹"t"中的所有测试。如果如果要同时运行t
和xt
测试,您应该编写:
prove xt t
可以在配置文件.proverc
文件中添加参数(xt t
)。然后,当您在没有参数的情况下运行prove
时,它们将从文件中获取,并且将执行两个文件夹中的测试。
但问题来了。如果您的.proverc
文件中有xt t
不能只将文件名作为参数传递给prove
。如果你说prove t/00-load.t
它将执行两个文件夹中的所有测试,因为它从配置文件中获取参数。你需要写prove --norc
t/00-load.t
。但这看起来很丑陋。
如何运行xt
测试?
默认情况下不应运行作者测试-您不希望CPAN安装失败,因为某些POD语法错误。理想情况下,当特别要求时,它们应该在发布时运行。
请参阅http://elliotlovesperl.com/2009/11/24/explicitly-running-author-tests/对于涉及Module::Build的方法。
我有时使用Dist::Zilla,它默认处理作者测试。
我添加
package MY;
sub depend {
"
xtest :: test
$(MAKE) test TEST_FILES=xt/*.t
"
}
至CCD_ 17。这将运行法线测试,然后运行xt
测试。