【问题标题】:Testing an XS module that uses Dist::Zilla测试使用 Dist::Zilla 的 XS 模块
【发布时间】:2013-05-03 01:42:32
【问题描述】:

我正在开发一个包含大量 XS 代码的 Perl 模块,并且还使用 Dist::Zilla 来管理打包。有效测试事物的最佳方法是什么?我知道dzil test,但这很慢,因为每次调用它都会执行完整的构建/编译/测试循环。

最好只更新自上次测试以来需要更新的部分,并且能够只运行某些t/*.t 测试脚本而不是全部。谁有他们喜欢的解决方案?

【问题讨论】:

  • 哈哈哈 =) 是的,尤其是加快 MongoDB 包的代码/测试周期会很好。

标签: perl testing xs dist-zilla


【解决方案1】:

过去,我只是将 dzil 生成的 Build.PL/Makefile.PL 作为“Makefile_dev.PL”(或“Build_dev.PL”)放入源存储库,并将其添加到MANIFEST.SKIP(或基于 dzil 的生成等效项)并在开发过程中使用它。

【讨论】:

    【解决方案2】:

    对于我的 XS 模块,我使用 MakeMaker::CustomModuleBuild::Custom(都由我自己)。如果您设置正确,您可以直接在您的存储库中运行 Makefile.PL 或 Build.PL,而无需调用 dzil。要运行特定测试,您只需构建 dist 并使用 prove -b testname

    一些使用 ModuleBuild::Custom 的示例:Media-LibMTP-APIWin32-IPC

    使用 MakeMaker::Custom: Win32-Setupsup 的示例。

    【讨论】:

      【解决方案3】:

      我知道我将自己归类为老派,但正是由于这些原因,我不使用 Dist::Zilla:当它很好用时,当它不起作用时,它真的很难制作它做你想做的事。

      我想这意味着,我的答案是:当它变得太难时,只需转向 dzil 生成的主要工具之一,即。直接 EUMM 或 MB。

      【讨论】:

      • 是的,我听到了。不过还是不打算放弃。 =) 令我惊讶的是,没有现成的测试解决方案。
      猜你喜欢
      • 2011-04-04
      • 2015-08-18
      • 2019-10-03
      • 2012-09-16
      • 2020-08-17
      • 2017-03-03
      • 2014-11-20
      • 2011-04-29
      • 2013-10-26
      相关资源
      最近更新 更多