集成测试中的并行 PHPUnit 测试特征用法
随着运行完整的 PHPUnit 套件所需的时间增加,我们的团队开始怀疑是否有可能并行运行单元测试。最近我读了一篇关于Paraunit的文章,Sebastian Bergman也写了,他将在PHPUnit 3.7中添加并行性。
但是集成测试仍然存在问题,或者更一般地说,与DB交互的测试。为了保持一致性,测试DB必须在每次测试后重置并加载夹具。但在并行测试中,存在争用条件的问题,因为所有进程都使用相同的数据库。
因此,为了能够并行运行集成测试,我们必须为每个进程分配自己的数据库。我想问一下,如果有人对如何解决这个问题有一些想法。也许在另一个 xUnit 实现中已经有针对此问题的已实现解决方案。
在我的团队中,我们使用MongoDB,因此一种解决方案是以编程方式为每个PHPUnit进程创建一个配置文件,并生成DB名称(用于此进程),并且通过该方法,我们可以将主TestDb克隆到这个临时进程中。但在我们开始实施这种方法之前,我想征求您对该主题的想法。setUp()