4

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

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

4

3 回答 3

2

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

于 2013-05-08T20:26:28.320 回答
1

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

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

于 2013-05-09T03:22:10.870 回答
1

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

一些使用 ModuleBuild::Custom: Media-LibMTP-API , Win32-IPC的例子。

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

于 2013-05-08T20:28:46.373 回答