【IT168技术文档】
PHP 官方自动化测试方法简述
以下介绍以 PHP 最新官方版本 5.2.8 的源码在 LINUX 系统平台上的分析为例展开。首先来看一下 PHP 的自动化测试脚本 PHPT 脚本。
自动化测试脚本 PHPT 示例
PHP 的测试脚本是以“ .phpt ”为后缀,包含 TEST,FILE,EXPECT 等多个段落的文件,简称 PHPT 。在各个段落中,TEST,FILE,EXPECT 是基本的段落,每个测试脚本都必须至少包括这三个段落。其中,TEST 段可以用来填写测试用例的名字; FILE 段是一个 PHP 脚本实现的测试用例; EXPECT 段则是测试用例的期待值。测试用例的运行中,PHP 将用被测试的 PHP 可执行对象去运行 FILE 段中的测试用例,用实际的结果去比对测试用例中 EXPECT 段所列的期待值;如果实际结果和期待值一致,则测试通过;如果不一致,则测试失败。
表 1 列出的是常用的段落名和其相应的填充内容说明。
表 1. PHP 测试脚本中的段落说明
以官方包里自带的测试脚本 “ 001.phpt ” 为例(见清单 1),从 TEST 段的内容看来这是一个对 PHP 版本进行验证的测试用例。 SKIPIF 段的内容写在了 “ skipip.inc ” 文件里。在 FILE 段里,测试用例将环境变量 TEST_PHP_EXECUTABLE 里设置的那个 PHP 的版本打印出来,这个结果将和 EXPECTF 中的字串进行格式匹对。
清单 1. PHPT 测试脚本 “ 001.phpt ” 示例
--TEST--
version string
--SKIPIF--
<?php include "skipif.inc"; ?>
--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
version string
--SKIPIF--
<?php include "skipif.inc"; ?>
--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