Test :: Class测试可以并行运行吗?(或如何分解超类测试)

Mar*_*las 8 testing perl

在我读过的所有教程中Test::Class,似乎有一个加载所有类的跑步者脚本.我认为从这个角度来看Test::Harness只是一个巨大的考验.我不认为它可以并行化跑步者内部的测试.

我的X问题是我试图在测试子类时分解超类行为.每个子类都应该有自己的子类测试(可以并行化),但也要运行从超类继承的行为.怎么一个?

编辑:我发现2007年的这两个帖子似乎暗示我要求的是不兼容/不可能的.从那时起的任何更新?

sim*_*onp 5

Test::Class不支持并行化.可能最简单的解决方案是.t为每个测试类(或测试类的逻辑组)分别使用运行程序,并使用eg运行prove -j9.

如果您真的想要并行运行所有测试,您可以编写一个简单的脚本来.t为每个测试类自动生成一个文件.您将失去在单个perl解释器中运行多个测试类的性能优势,但并行化可能会补偿额外的启动开销.而且我认为无论Test::Class尝试提供多少测试隔离,都无法保证在Perl中.一旦你开始利用修改符号表进行模拟等目的,你的测试将开始相互干扰,除非你总是得到正确的清理.在单独的perl解释器中运行每个测试是提供有保证的隔离的更好方法.