gpt4 book ai didi

php - 我应该在登台/生产环境中使用 PHPUnit 吗?

转载 作者:行者123 更新时间:2023-12-04 13:33:00 24 4
gpt4 key购买 nike

我已经安装了 PHPUnit 框架来执行单元测试。我已经编写了测试用例,并且还使用了现有的 PHPUnit 库进行测试。

在staging和生产环境中是否需要配置PHPUnit框架?如果是这样,phpunit 测试框架和相关文件在暂存和生产中占用了内存,这是不必要的。

在本地环境使用PHPUnit测试框架就够了吗?

最佳答案

如果您将单元测试保存在它们自己的顶级子目录中(例如,参见 How do you manage the unit test files in projects? do you add them in git?),那么您可以在 git checkout 后简单地删除 tests 目录。或者,如果使用 ftp,则 ftp 除该目录之外的所有其他目录。或者如果使用 rsync,则 --exclude=tests/.

但是,我发现我不同意到目前为止已回复的其他人。为了高枕无忧,在登台和生产服务器上运行单元测试非常有用。如果测试在您的开发服务器上通过,但在登台或生产中失败,您就会收到一个大红旗。最好让您的单元测试告诉您,您对实时服务器的依赖项之一是不同的版本,而不是让您的客户为您发现它!

但是,这需要小心。如果您的任何单元测试不是独立的,则不得运行它们。显而易见的情况是,如果他们使用数据库,并且单元测试不是从创建该数据库开始(其名称永远不会与生产数据库冲突)并通过删除它来完成。另一种情况是任何直接或间接导致磁盘文件更新的测试。尤其要考虑任何进行日志记录的功能。您应该注意的另一种类型的测试是那些需要很长时间才能完成或使用大量 CPU 或内存的测试。确保在生产服务器处于事件状态并承受负载时永远不会运行它们。

制作一个 phpunit.xml.dist 副本的想法是明确列出那些安全且没有副作用的测试。然后使用 phpunit --configuration production_tests.xml 运行它。或者,在测试中,使用 @group 标记安全或不安全的测试函数,然后使用 phpunit --group safe_for_productionphpunit --exclude-组修改_db

关于php - 我应该在登台/生产环境中使用 PHPUnit 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11078572/

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