有没有办法用PAR或PerlApp打包我的单元测试?

dao*_*oad 7 perl par perlapp

我有一个应用程序,我使用PerlApp分发成"二进制"形式进行分发.由于我的客户想要为他们的Win32系统进行简单的安装,这非常好用.

现在,客户已决定他们需要运行所有单元测试,例如在标准安装中.但是,他们仍然不会安装普通的Perl.

因此,我发现自己需要一种方法来打包我的单元测试以便在我的客户端系统上进行操作.

我的第一个想法是,我可以打包prove在一个文件中并分别打包我的每个测试.然后发送具有适当结构的zip文件.

一些研究表明,Test :: Harness :: Straps从命令行调用perl.

是否有现有工具可以帮助完成此过程?

也许我可以使用PAR::Packerparl工具来处理我的测试脚本调用.

我对如何应用PARPerlApp以及如何处理覆盖Test :: Harness和朋友的任何想法感兴趣.

谢谢.

更新:我没有在PAR或PerlApp上设置我的心脏.这些只是我熟悉的工具.如果您有想法或解决方案需要不同的打包器(例如Cava Packager),我很乐意听到它.

更新2: tsee指出PAR中的一个很棒的新功能让我接近.是否有任何TAP专家可以提供一些想法或指示在新的Test :: Harness发行版中查看的位置?

tse*_*see 4

如果我告诉您 PAR(也可能还有 perlapp)并不意味着打包整个测试套件和过多的 CPAN 模块构建副产品,那么我可能并不是在爆料。它们旨在打包独立应用程序或类似二进制 JAR 的模块库。

也就是说,您可以使用 pp 的 -a 开关将任意文件添加到 PAR 存档(包括 .par 库和独立的 .exe)。对于独立可执行文件,内容将在运行时提取到 $ENV{PAR_TEMP}."/inc"。

这给您留下了重用 PAR 打包的可执行文件来运行测试工具(并让其作为“perl”运行您的可执行文件)的问题。现在,我还没有现成的解决方案,但我最近致力于使 PAR 打包的可执行文件可以作为或多或少的通用 Perl 解释器重新使用。在我解释如何使用它之前,有两个问题:

  • 您的应用程序不会神奇地被称为“perl”并将其自身添加到您的 $PATH 中。
  • 将应用程序“重用”为通用 Perl 需要特殊选项,并且当前不支持普通 Perl 选项(perlrun 中的选项)。它可以简单地运行您选择的外部 perl 脚本。

不幸的是,后一个问题可能会扼杀这种方法。我一直在考虑支持 perl 命令行选项,但不会很快实现。

以下是如何通过“可重用 exe”支持获得 PAR 的方法:

  • 从 CPAN 安装最新版本的 PAR。
  • 从 CPAN 安装最新的 PAR::Packer 开发人员版本(0.992_02 或 03)。
  • 将“--reusable”选项添加到 pp 命令行中。
  • 使用以下选项运行可执行文件以运行外部脚本“foo.pl”:

    ./myapp --par-options --reuse foo.pl FOO-PL-OPTIONS-此处

不幸的是,我无法告诉 Test::Harness “./myapp --par-options --reuse” 是一个 perl 解释器。