Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该上传perl';xt';对CPAN的测试?_Perl - Fatal编程技术网

我应该上传perl';xt';对CPAN的测试?

我应该上传perl';xt';对CPAN的测试?,perl,Perl,不久前,Perl世界出现了新事物。关键是创造 xt目录中的模块源代码,并在其中放置应 只能由作者运行。xt测试的思想是当 该模块是从CPAN安装的 我在想,如果安装过程中不需要测试 不需要将该测试上传到CPAN。我的想法是做这些测试 在我的VSC中,但不是将它们放在tar.gz文件中,这将上载到CPAN 但是现在有很多CPAN模块中都有xt目录。我有 本地CPAN副本,我搜索了这些模块: $ find -iname "*.tar*" -exec tar tf {} \; | grep "/xt/

不久前,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
我的问题是关于最好的条约。什么是最好的?将
xt
测试上载到
CPAN,还是不上传?这个决定的好处是什么?

我认为最好的做法是上传


其好处是,它允许人们对代码进行黑客攻击和修补,并且仍然能够运行完整的测试套件。帮助人们编写补丁,不会伤害任何人。

我不确定破解tar.gz文件中的代码是否是最好的办法。我认为更好的解决方案是检查来自某个版本控制系统的源代码。然后,您将获得作者正在编写的确切代码,您将获得提交的历史记录,这些历史记录为您提供了可以帮助您改进软件的附加信息。如果有人正在使用您的CPAN模块,如果他们发现需要更改的内容,他们几乎肯定会从CPAN获取tarball。将author测试放入CPAN发行版并没有坏处,如果它们帮助单个用户解决他们遇到的问题,它们就达到了目的。测试也是一种文档,因为它们显示了应该(或不应该)如何调用、使用或处理事情。除非你想对用户隐瞒什么,否则将这些信息分发给用户总是有意义的。但这确实很奇怪,不是吗?+1将xt/上传到CPAN。正是出于上述原因。