t;; ?>
--FILE--
<?php
$php = getenv(''TEST_PHP_EXECUTABLE'');
var_dump(`$php -n -v`);
echo "Done\n";
?>
--EXPECTF--
string(%d) "PHP %s (cli) (built: %s)%s
Copyright (c) 1997-20%d The PHP Group
Zend Engine v%s, Copyright (c) 1998-20%d Zend Technologies
"
Done
如何运行 PHP 自动化测试脚本
在运行测试脚步前,首先要将被测试的 PHP 源码编译为可执行对象。
然后要导入若干环境变量。表 2 中介绍了主要的几个环境变量如何设置。
表 2. PHP 自动化测试中的环境变量设置
环境变量名 |
环境变量值 |
例子 |
TEST_PHP_EXECUTABLE |
设定被测试对象 PHP,或者 “ auto ” 。当设置 “ auto ” 时,如果是 CGI 模式,即为 “ ./sapi/cgi/php-cgi ” ;如果是 CLI 模式,即为 “ ./sapi/cli/php ” 。 |
TEST_PHP_EXECUTABLE=
$HOME/php-5.2.8/sapi/cli/php |
TEST_PHP_DETAILED |
设定是否需要详细的日志输出。设置值为 1 或者 0 。 |
TEST_PHP_DETAILED=1 |
TEST_PHP_USER |
设定是否需要特制的用户目录。 |
TEST_PHP_DETAILED= “ /usr/test1 ” |
TEST_PHP_LOG_FORMAT |
设定日志的格式。设置值为 “ LEOD ” 子串的子集。其中 L 代表测试后需要生成 “ .log ” 文件,E 代表 “ .exp ” ,O 代表 “ .out ” ,D 代表 “ .diff ” 。 |
TEST_PHP_LOG_FORMAT="LD" |
在本例中,在 Bash 环境中设置环境变量如下:
清单 2. 设置环境变量示例
export HOME=/home/user_dir/
export TEST_PHP_EXECUTABLE=$HOME/php-5.2.8/sapi/cli/php
export TEST_PHP_DETAILED=1
export TEST_PHP_LOG_FORMAT="LEOD"
经过这样设置后,被测试的 PHP 可执行对象就是放在目录 “ $HOME/php-5.2.8/sapi/cli/ ” 下编 译好的那个 “ php ” 可执行文件。
执行测试前,还需将测试脚本 PHPT 编辑好,存为 “ .phpt ” 文件。这里以官方包里自带的测试脚 本 “ 001.phpt ” 为例,运行如下:
清单 3. PHPT 测试总结报告实例
bash-2.03$ cd $HOME/php-5.2.8/
bash-2.03$ $HOME/php-5.2.8/sapi/cli/php run-tests.php \
$HOME/php-5.2.8/sapi/cli/tests/001.phpt
如果该测试用例的实际输出与期待值一致,则在屏幕上输出测试结果如下:
清单 4. PHPT 测试总结报告实例
===================================================================== CWD :
/home/user_dir/php-5.2.8/sapi/cli/php PHP : /home/user_dir/php-
5.2.8/sapi/cli/php PHP_SAPI : cli PHP_VERSION : 5.2.8 ZEND_VERSION: 2.1.0
PHP_OS : Linux rhas05 2.6.9-55.ELhugemem #1 SMP Fri Apr 20
17:20:11 EDT 2007 i686 i686 i386 GNU/Linux INI actual : More .INIs : Extra
dirs : =====================================================================
Running selected tests. PASS Test version string [001.phpt]
===================================================================== Number of tests :
1 1 Tests skipped : 0 ( 0.0%) -------- Tests warned |