我正在开发一个具有大量XS代码的Perl模块,并且还使用Dist::Zilla
来管理打包。什么是有效测试事物的最佳方法?我知道dzil test
,但这很慢,因为每次调用它都会进行完整的构建/编译/测试循环。
最好只更新自上次测试以来需要更新的部分,并且只能运行某些t/*.t
测试脚本而不是所有测试脚本。任何人都有他们喜欢的解决方案吗?
答案 0 :(得分:2)
过去,我刚刚接受了dzil生成的Build.PL/Makefile.PL,并将其作为“Makefile_dev.PL”(或“Build_dev.PL”)放入源存储库,添加到MANIFEST.SKIP(或基于dzil的,生成的等价物)并在开发过程中使用它。
答案 1 :(得分:1)
对于我的XS模块,我使用MakeMaker::Custom或ModuleBuild::Custom(我都是)。如果你正确设置,你可以直接在你的仓库中运行Makefile.PL或Build.PL而不需要调用dzil
。要运行特定测试,您只需构建dist并使用prove -b testname
。
使用ModuleBuild :: Custom的一些示例:Media-LibMTP-API,Win32-IPC。
使用MakeMaker :: Custom的示例:Win32-Setupsup。
答案 2 :(得分:1)
我知道我把自己当作老派,但是由于这些原因,我不使用Dist :: Zilla:当它工作得很好的时候,当它不工作时,它真的很难制作它做你想做的事。
我想这意味着,我的答案是:当它变得太难时,只需转移到dzil生成的主要工具之一,即。 EUMM或MB直接。