Symfony2功能测试需要几小时才能完成使用PHPUnit

问题描述:

我目前使用symfony2创建项目,我使用PHPUnit供应商来测试我的代码。 我面临一个问题,即随着项目变大,功能测试时间会增加。 注:我正在使用Fixtures为每个功能测试函数加载。Symfony2功能测试需要几小时才能完成使用PHPUnit

我的问题在这里?实施在合理时间内运行的功能测试的最佳实践是什么?

另一方面,是否有任何捆绑包或工具可以用来加速此过程?

+2

单元测试的功能测试应该是孤立的,不要触及任何外部资源(这就是术语中“单位”部分的含义)。你在做什么不是“单元测试”。 – zerkms

+0

@zerkms你会解释更多!你的外部资源是什么意思? – Dahab

+1

所有需要任何类型的灯具或清理或远程连接:数据库,文件系统,HTTP等 – zerkms

你的问题很复杂,很难说延迟问题。

首先,您可以将您可能加载的测试夹具和可以通过setUp方法加载的其他部件分开。

第二个建议,可以真正加快你的测试过程是多线程运行。我使用“最快”的库,与一次线程运行相比,我可以加快我的测试速度3-4倍(在i7上)。

https://github.com/liuggio/fastest

find tests/ -name "*Test.php" | ./bin/fastest "bin/phpunit -c app {};" 

只是一些另外有关单位/功能测试参数。正如我看到的主题是关于“功能”测试,如果该工具是PhpUnit,并不意味着测试必须是“单元”,因为它也可以进行功能测试,但我相信它不是功能测试工具的最佳选择。

我会建议你看看其他一个伟大的工具,如Behat功能测试(http://behat.org)。它可以让你不仅功能测试更舒适的工作,但使用BDD(行为驱动开发)的方式为您的发展过程

只是小例子,我们如何使用它的购物车http://www.youtube.com/watch?v=XIUmDGaaZWM