在本例中,在 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 : 0 ( 0.0%) ( 0.0%) Tests failed : 0 ( 0.0%) ( 0.0%) Tests passed : 1 (100.0%) (100.0%) --------------------------------------------------------------------- Time taken : 0 seconds ===================================================================== |
如果该测试失败了,则除了屏幕输出失败结果外,当前运行目录下还会生成若干文件,以供用户分析测试失败的原因。生成的日志文件的种类是由环境变量 TEST_PHP_LOG_FORMAT 设定的,详见表 2 。如果设定的是 “ LEOD ” 则生成日志文件包括表 3 中列出的五种文件。
表 3. PHP 自动化测试的输出脚本文件
日志文件名 | 日志文件内容 | 对应的TEST_PHP_LOG_FORMAT里的设置 |
001.out | 运行测试语句后得到的实际输出结果。 | O |
001.exp | 脚本中的期待结果,即测试脚本中 EXPECT* 段的内容。 | E |
001.log | 实际运行的输出结果和脚本中的期待结果,即 “ .exp ” 和 “ .out ” 的合集。 | L |
001.diff | 实际运行的输出结果和脚本中的期待结果通过 diff 命令得到比对后的结果。 | D |
001.php | 实际执行的 PHP 测试语句,在测试中解析测试脚本的 FILE 段得到。 | 总会生成 |
上面的例子是一次只运行一个脚本。 PHP 也支持多测试脚本一起运行。表 4 列出了三种 PHP 支持的测试方式。
表 4. PHP 自动化测试方式
测试方式 | 参数 | 举例 |
只执行单个测试用例 | 测试脚本名 | 001.phpt 002.phpt |
执行某个目录下的测试用例 | 测试用例的目录名 | test_dir/ |
执行某个文件中列出的测试用例 | -r 加列举测试用例的文件名 | -r record_file |
相关阅读: