我当前的项目有一个100%单元测试代码覆盖率的策略。我们的持续集成服务将不允许开发人员在没有100%覆盖率的情况下推送代码。
随着项目的发展,运行完整测试套件的时间也在增加。虽然开发人员通常会运行与他们正在更改的代码相关的测试子集,但他们通常会在提交给CI之前进行最后一次完整运行,CI服务器本身也会运行完整的测试套件。
单元测试本质上是高度可并行的,因为它们从一个测试到另一个测试都是自包含的和无状态的。它们只返回两条信息:通过/失败和包含的代码行。map/reduce解决方案似乎效果很好。
是否有任何Python测试框架可以在具有代码覆盖率的机器集群上运行测试,并在完成后组合结果?
我不知道有任何测试框架可以运行分布在一组机器上的测试,但nose支持使用多处理在同一台机器上并行测试。
至少,这可能是开始创建分布式测试框架
我认为没有一个框架能完全满足您的需求。
我知道py.test有一个xdist插件,它添加了分布式测试执行器。您可以使用它在上面编写CI基础设施。
不完全是你所看到的,但我能回忆起的最接近Hadoop组的是使用JUnit测试Hadoop。这是邮件。如gridunit
论文的邮件搜索中所述。
以分布式方式使用Hadoop进行单元测试非常有趣。围绕这一点的任何框架都是非常有用的,但开发一个框架应该不会很困难。如果有兴趣,请告诉我。