本文共 892 字,大约阅读时间需要 2 分钟。
当PHP编译完成后,编译程序通常会提示用户不要忘记执行make test。这条指令用于检查编译后的程序是否存在问题。需要注意的是,即使编译过程没有错误,程序也可能存在功能性问题或其他问题。
在Makefile文件中,make test对应的具体命令如下:
$(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 extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS);
从上述命令可以看出,自动化测试主要通过源代码下的run-tests.php脚本来执行。
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
该脚本首先检查PHP执行环境的存在性和可执行性。如果确认无误后,会生成一个临时的INI文件。接着,通过egrep命令检查INI文件中的已弃弃议指令。如果发现相关内容,会将其复制到临时INI文件中;否则,会生成一个空的INI文件。
转载地址:http://botfk.baihongyu.com/