如何在Perl测试套件中并行运行一些但不是全部的测试?
我有一个基于Perl的测试套件,10,000个测试,我想使运行速度更快.我已经使用-j标志进行了测试,证明了这一点,而且我发现大部分但不是全部的测试都准备好并行运行.
虽然我可以努力使剩下的测试是“平行的”,我期望总是有一些测试不是.什么是管理这个的好方法?我希望能够有效地运行整套测试,轻松地将测试标记为“不平行就绪”,如果我需要的话. 这里有一些我看到的选项: > prove could be patched to support some tests as not-parallel-ready 我不太在意我如何管理异常列表.我可以将文件中的列表作为测试工具基础设施的一部分,或者我可以在每个测试头中添加一些标记,这样我们的测试工具可以动态地确定异常列表. (测试套件部分基于Test :: Class,我也将看看Test :: Class :: Load来加快速度.) 解决方法
我找到了一个解决方案.它在
aggregate_tests() for TAP::Harness的文档中.它包含一个代码示例,为此我可以如何编写自己的线束:
my $formatter = TAP::Formatter::Console->new; my $ser_harness = TAP::Harness->new( { formatter => $formatter } ); my $par_harness = TAP::Harness->new( { formatter => $formatter,jobs => 9 } ); my $aggregator = TAP::Parser::Aggregator->new; $aggregator->start(); $ser_harness->aggregate_tests( $aggregator,@ser_tests ); $par_harness->aggregate_tests( $aggregator,@par_tests ); $aggregator->stop(); $formatter->summary($aggregator); 从那里看起来像我可以: >子类App :: Prove并覆盖_runtests(),这是上述新功能可以合并的地方. 现在我更好地了解这些片段是如何组合在一起的,我可以看到我如何创建一个补丁,以证明它将添加一个选项,如–exclude-from-parallel FILE,这将允许您指定一个文件,其中包含测试文件被排除在并行测试之外. 更新2012-08-16:我有一个补丁现在证明,并已提交审查.您可以在view and comment on the Pull Request.运行输出后不会生成汇总.不清楚为什么 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |