gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:25:56 24 4
gpt4 key购买 nike

我有一个应用程序,我使用 PerlApp 打包成“二进制”形式进行分发。由于我的客户希望为他们的 Win32 系统进行简单的安装,因此效果非常好。

现在客户决定他们需要运行所有单元测试,就像在标准安装中一样。但是,他们仍然不会安装正常的 Perl。

所以,我发现自己需要一种方法来打包我的单元测试,以便在我的客户系统上运行。

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

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

是否有现有的工具可以帮助完成这个过程?

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

我对如何申请 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”并将其自身添加到您的 $PATH 中。
  • 应用程序作为通用 perl 的“重用”需要特殊选项,并且当前不支持正常的 perl 选项(那些在 perlrun 中的选项)。它可以简单地运行您选择的外部 perl 脚本。

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

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

    ./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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com