前段时间,新的东西出现在Perl世界中.问题是xt在模块源代码中创建
目录并放置应该只由作者运行的测试.xt测试的想法是,当从CPAN安装模块时,它们不会运行.
我在想如果安装过程不需要测试,则无需将测试上传到CPAN.我的想法是在我的VSC中进行这些测试,但不要将它们放在tar.gz文件中,而是将其上传到CPAN.
但是现在有很多CPAN模块都有xt目录.我有一个本地的CPAN副本,我搜索了这样的模块:
$ find -iname "*.tar*" -exec tar tf {} \; | grep "/xt/" &> modules_with_xt_dir
$ cat modules_with_xt_dir |sort --random-sort|uniq|head
CatalystX-Dispatcher-AsGraph-0.01/xt/03_pod.t
Religion-Bible-Reference-0.014/xt/release/perl-critic.t
DBIx-Custom-0.1674/xt/dbix-connector.t
Geo-Distance-XS-0.09/xt/
FBP-Perl-0.21/xt/pod.t
Getopt-Compact-WithCmd-0.14/xt/01_podspell.t
Dist-Zilla-Plugin-CheckExtraTests-0.004/xt/release/pod-coverage.t
MooseX-GlobRef-0.07/xt/pod_spellrc
Web-Request-0.09/xt/release/pod-syntax.t
Amon2-2.52/eg/Hello/xt/perlcriticrc
Run Code Online (Sandbox Code Playgroud)
我的问题是关于最好的协议.什么是最好的?要将xt测试上传到CPAN,还是不上传?决定有哪些优势?
我会说最好的做法是上传.
好处是它可以让人们破解和修补你的代码,并且仍然可以运行完整的测试套件.帮助人们编写补丁 - 并且伤害任何人.