2013-05-08 26 views
4

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

只更新自上次测试以来需要更新的部件以及只能运行某些测试脚本而不是全部测试脚本。任何人都有他们喜欢的解决方案?

+1

你和我都。 :) – friedo 2013-05-08 19:51:02

+0

哈哈哈=)是的,特别是它会很快加快MongoDB软件包的代码/测试周期。 – 2013-05-08 20:20:36

回答

2

我过去只是采用了由dzil生成的Build.PL/Makefile.PL,并将其作为“Makefile_dev.PL”(或“Build_dev.PL”)放到源代码库中,添加它到MANIFEST.SKIP(或基于dzil的生成的等价物)并在开发过程中使用它。

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

1

我知道我自称老派,但是由于这些原因,我不使用Dist :: Zilla:当它工作的很好,当它不好时,它可能很难让它做你想做的事。

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

+0

是的,我听到你的声音。尽管如此,仍然不会放弃。 =)这让我感到惊讶,但测试的东西没有现成的解决方案。 – 2013-05-09 12:59:13