我已经安装了 PHPUnit 框架来执行单元测试。我已经编写了测试用例,并且还使用了现有的 PHPUnit 库进行测试。
是否需要在临时和生产环境中配置 PHPUnit 框架?如果是这样,phpunit 测试框架和相关文件会在暂存和生产中占用内存,这是不必要的。
在本地环境中使用PHPUnit测试框架就足够了吗?
如果您将单元测试保存在它们自己的顶级子目录中(例如,请参阅如何管理项目中的单元测试文件?你把它们添加到git中吗? https://stackoverflow.com/questions/11070682/how-do-you-manage-the-unit-test-files-in-projects-do-you-add-them-in-git)然后你可以简单地删除tests
git checkout 后的目录。或者,如果使用 ftp,则通过 ftp 传输除该目录之外的所有其他目录。或者如果使用 rsync,那么--exclude=tests/
.
但是,我发现我不同意迄今为止回复的其他人。为了让您高枕无忧,在临时服务器和生产服务器上运行单元测试非常有用。如果测试在您的开发服务器上通过,但在登台或生产上失败,您就会遇到一个大危险信号。最好让您的单元测试告诉您对实时服务器的依赖项之一是不同的版本,而不是让您的客户为您发现它!
然而这需要小心。如果您的任何单元测试不是独立的,则不得运行它们。明显的情况是,如果他们使用数据库,并且单元测试不是通过创建该数据库(其名称永远不会与生产数据库冲突)开始并通过删除它来完成。另一种情况是直接或间接导致磁盘文件更新的任何测试。特别要考虑任何进行日志记录的函数。您应该注意的其他类型的测试是那些需要很长时间才能完成或使用大量 CPU 或内存的测试。确保当生产服务器处于活动状态并承受负载时,这些永远不会运行。
一个想要复制的想法phpunit.xml.dist
它明确列出了那些安全且无副作用的测试。然后运行它phpunit --configuration production_tests.xml
。或者,在测试中,使用@group
标记安全或不安全的测试函数,然后类似phpunit --group safe_for_production
or phpunit --exclude-group modifies_db
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)