您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP7 扩展之自动化测试

2025/1/21 15:53:51发布16次查看
在安装 php7 及各种扩展的过程中,如果你是用源码安装,会注意到在 make 成功之后总会有一句提示:don't forget to run 'make test'. 这个 make test 就是运行 php 的自动化测试了。
如果你刚刚安装完 php7,直接运行 make test,经过漫长的等待时间之后,最终的统计结果大概是这样的:
会出现这么多 skip 和 fail 说明有一些扩展你没有安装,相关环境的配置也需要优化
不过一般来讲我们不需要运行这么多的测试脚本,尤其对单一扩展而言,针对相关接口来测试就可以了,所以我们进一步看看如何独立运行测试脚本
首先打开 php 的 makefile文件,我们看看 make test 都做了什么
test: all @if test ! -z $(php_executable) && test -x $(php_executable); then \ ini_file=`$(php_executable) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \ if test $$ini_file; then \ $(egrep) -h -v $(php_deprecated_directives_regex) $$ini_file > $(top_builddir)/tmp-php.ini; \ else \ echo > $(top_builddir)/tmp-php.ini; \ fi; \ ini_scanned_path=`$(php_executable) -d 'display_errors=stderr' -r '$$a = explode(,\n, trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \ if test $$ini_scanned_path; then \ ini_scanned_path=`$(top_srcdir)/build/shtool path -d $$ini_scanned_path`; \ $(egrep) -h -v $(php_deprecated_directives_regex) $$ini_scanned_path/*.ini >> $(top_builddir)/tmp-php.ini; \ fi; \ test_php_executable=$(php_executable) \ test_php_srcdir=$(top_srcdir) \ cc=$(cc) \ $(php_executable) -n -c $(top_builddir)/tmp-php.ini $(php_test_settings) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extensi/modules/ $(php_test_shared_extensions) $(tests); \ test_result_exit_code=$$?; \ rm $(top_builddir)/tmp-php.ini; \ exit $$test_result_exit_code; \ else \ echo error: cannot run tests without cli sapi.; \ fi
先不用管那些变量的定义,核心内容就是下面这一句
$(php_executable) -n -c $(top_builddir)/tmp-php.ini $(php_test_settings) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extensi/modules/ $(php_test_shared_extensions) $(tests);
原来自动测试是通过执行 php 源码根目录下的 run-tests.php来进行的,测试脚本一般放在 tests 文件夹下
我们随便打开 php 安装目录下的 ./tests/basic,里面有一些 phpt 文件,这就是一个个的测试脚本了
有些脚本中的内容很简单,001.phpt 中的内容是这样的
--test--trivial hello world test--file----expect--hello world
下面我们来只运行 001.phpt 试试
首先要设置一下相关环境变量,指定被测试对象 php,这里楼主用的是安装路径下的
php
export test_php_executable=/usr/local/php7/bin/php
然后在 php 安装根目录下执行
php run-tests.php ./tests/basic/001.phpt
不出意外的话就可以得到下面的结果
这样我们以后就可以写一个脚本来指定要测试的 phpt,并统计出最终的结果。
oneapm for php 能够深入到所有 php 应用内部完成应用性能管理 能够深入到所有 php 应用内部完成应用性能管理和监控,包括代码级别性能问题的可见性、性能瓶颈的快速识别与追溯、真实用户体验监控、服务器监控和端到端的应用性能管理。想阅读更多技术文章,请访问 oneapm 官方技术博客。
本文转自 oneapm 官方博客
以上就介绍了php7 扩展之自动化测试,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product