我有一个应用程序,我使用PerlApp打包成“二进制”形式进行分发。由于我的客户希望为他们的Win32系统进行简单安装,因此非常适用。
现在客户已决定他们需要运行所有单元测试,例如在标准安装中。但是,他们仍然不会安装普通的Perl。
所以,我发现自己需要一种方法来打包我的单元测试,以便在我的客户系统上进行操作。
我的第一个想法是,我可以在一个文件中打包prove
并分别打包我的每个测试。然后发送具有适当结构的zip文件。
一些研究表明Test :: Harness :: Straps从命令行调用perl。
是否有现有工具可以帮助完成此过程?
也许我可以使用PAR::Packer
的{{1}}工具来处理我的测试脚本的调用。
我对如何应用PAR或PerlApp以及如何处理覆盖Test :: Harness和朋友的任何想法感兴趣。
感谢。
更新:我没有在PAR或PerlApp上设置心脏。这些只是我熟悉的工具。如果您有想法或解决方案需要不同的打包器(例如Cava Packager),我很乐意听到它。
更新2: tsee指出PAR中的一个很棒的新功能让我很接近。是否有任何TAP专家可以提供一些想法或指示在新的Test :: Harness发行版中查看哪些内容?
答案 0 :(得分:4)
这就是说,您可以使用pp的-a开关将任意文件添加到PAR存档(包括.par库和独立的.exe文件)。如果是独立的可执行文件,则内容将在运行时提取到$ ENV {PAR_TEMP}。“/ inc”。
这使您无法重用PAR打包的可执行文件来运行测试工具(并让您将可执行文件作为“perl”运行)。现在,我没有现成的解决方案,但我最近致力于将PAR打包的可执行文件重新用作或多或少的通用perl解释器。在我解释你如何使用它之前有两个问题:
不幸的是,后一个问题可能会为你杀掉这种方法。支持perl命令行选项是我一直在考虑的事情,但不会很快实现。
以下是如何通过“可重用的exe”支持获得PAR的方法:
使用以下选项运行您的可执行文件以运行外部脚本“foo.pl”:
./ myapp --par-options --reuse foo.pl FOO-PL-OPTIONS-HERE
不幸的是,你将如何教授Test :: Harness,“。/ myapp --par-options --reuse”是一个perl解释器,超出了我的范围。
答案 1 :(得分:1)
Cava Packager允许您将测试脚本与打包的可执行文件打包在一起。这主要是为了允许您在分发之前对打包的代码运行测试。但是,该选项还可以将测试和测试功能分发给最终用户。
注意:如我的名字所示,我与Cava Packager有联系。