我有一个应用程序,使用PerlApp打包成“二进制”形式进行分发。由于我的客户希望为其Win32系统进行简单安装,因此效果很好。
现在,客户已决定他们需要运行所有单元测试,例如在标准安装中。但是,他们仍然不会安装普通的Perl。
因此,我发现自己需要一种打包单元测试以在客户端系统上运行的方法。
我首先想到的是,我可以将prove
打包在一个文件中,然后分别打包每个测试。然后发送具有适当结构的zip文件。
一些研究表明,Test::Harness::Straps从命令行调用perl。
是否有现有工具可以帮助完成此过程?
也许我可以使用PAR::Packer
的parl
工具来处理测试脚本的调用。
我对如何应用PAR或PerlApp的想法以及对如何处理最重要的Test::Harness和 friend 的想法感兴趣。
谢谢。
更新:我对PAR或PerlApp的看法并不坚定。这些只是我熟悉的工具。如果您有一个需要其他打包程序的想法或解决方案(例如Cava Packager),我很想听听它。
更新2: tsee指出了PAR中的一项很棒的新功能,使我与之接近。是否有TAP专家可以提供一些想法或指导,以了解在新的Test::Harness发行版中的位置?
最佳答案
如果我告诉您PAR(可能还包括perlapp)并不是要打包整个测试套件和过多的CPAN模块构建副产品,那么我可能并没有大新闻。它们旨在打包独立应用程序或类似于JAR的二进制模块库。
话虽这么说,您可以使用pp的-a开关将任意文件添加到PAR存档(到.par库和独立的.exe文件中)。对于独立的可执行文件,其内容将在运行时提取到$ ENV {PAR_TEMP}。“/inc”。
剩下的问题是重新使用PAR打包的可执行文件来运行测试工具(并使该可执行文件作为“perl”运行)。现在,我还没有现成的解决方案,但是最近我致力于使PAR打包的可执行文件作为或多或少的通用perl解释器可重用。在我解释如何使用它之前,有两个陷阱:
不幸的是,后一个问题是什么可能会杀死您这种方法。我一直在考虑对perl命令行选项的支持,但是不会很快实现。
这是获得“可重用exe”支持的PAR的方法:
./myapp --par-options --reuse foo.pl FOO-PL-OPTIONS-HERE
不幸的是,您将如何教Test::Harness说“./myapp --par-options --reuse”是一个perl解释器,这超出了我的理解。
关于perl - 有没有办法将我的单元测试与PAR或PerlApp打包在一起?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1191307/