gpt4 book ai didi

performance - 如何加快 CakePHP 的单元测试

转载 作者:行者123 更新时间:2023-12-01 08:59:34 24 4
gpt4 key购买 nike

我正在使用 CakePHP 2.4.3 进行开发,并且经常使用 Unittest。目前主要在模型上。

是否有可能缩短这些测试需要运行的时间?是什么让他们这么慢?灯具的 db 插入?

我注意到我没有耐心等待测试运行,在等待期间我开始做其他事情,然后当我回来时,我忘记了我正在测试的问题。

感谢任何提示!

灾难简

最佳答案

我在这里强烈反对标记评论:

Unittests are not supposed to be "speedy"

从技术上讲,它们并非如此,但它可能会变得烦人。如果您在大型项目中使用 CI,测试可能会变得非常缓慢。您不想等待 30 分钟,直到所有测试完成。我们在一个有大约 550 个表的项目中遇到了这种情况。

瓶颈实际上是夹具加载。因为对于每个测试,所有夹具都必须一遍又一遍地创建。速度很慢。

我们使用内部插件将测试数据库模板复制到测试数据库,而不是使用夹具。这将运行该项目测试的时间从 30 多分钟缩短到几分钟。

一个也应该能够做到这一点的开源插件是https://github.com/lorenzo/cakephp-fixturize .您可以从 SQL 文件加载夹具,也可以从模板数据库加载它们,see this section of the readme.md .

如果您只需要测试一个方法而无需运行所有测试,您可以过滤测试:

cake test <file> --filter testMyMethod

关于performance - 如何加快 CakePHP 的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20514149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com