phpt文件说明,php官方自动测试方法,run-test.php命令用法

phpt文件用于PHP的自动化测试,这是PHP用自己来测试自己的测试数据用例文件。测试脚本通过执行PHP源码根目录下的run-tests.php,读取phpt文件执行测试。

phpt文件包含 TEST,FILE,EXPECT 等多个段落的文件。在各个段落中,TEST、FILE、EXPECT是基本的段落,每个测试脚本都必须至少包括这三个段落。其中:

  • TEST段可以用来填写测试用例的名字。
  • FILE段是一个 PHP 脚本实现的测试用例。
  • EXPECT段则是测试用例的期待值。

在这三个基本段落之外,还有多个段落,如作为用例输入的GET、POST、COOKIE等,此类字段最终会赋值给$env变量。比如,cookie存放在$env['HTTP_COOKIE'],$env变量将作为用例中脚本的执行环境。一些主要段落说明如下表所示:

PHP测试脚本中的段落说明

段落名填充内容备注
TEST测试用例名称必填段落
FILE测试脚本语句必填段落。用PHP语言书写的脚本语句。其执行的结果将与 EXPECT* 段的期待结果做对比。
ARGSFILE 段的输入参数选填段落
SKIPIF跳过这个测试的条件选填段落
POST传入测试脚本的 POST 变量选填段落。如果使用POST段,建议配合使用SKIPIF段
GET传入测试脚本的 GET 变量选填段落。如果使用GET段,建议配合使用SKIPIF段。
POST_RAW传入测试脚本的POST内容的原生值选填段落。比如在做文件上传测试时就需要使用此字段来模拟HTTP的POST请求。
COOKIE传入测试脚本的COOKIE的值选填段落。最常见的是将PHPSESSID的值传入。
INI应用于测试脚本的 ini 设置选填段落。例如 foo=bar 。其值可通过函数 ini_get(string name_entry) 获得。
ENV应用于测试脚本的环境设置选填段落。例如做gzip测试,则需要设置环境HTTP_ACCEPT_ENCODING=gzip。
EXPECT测试脚本的预期结果 相当于测试文件的结果必填段落
EXPECTF测试脚本的预期结果选填段落。可用函数 sscanf() 中的格式表达预期结果 EXPECT 段的变体
EXPECTREGEX测试脚本的正则预期结果选填段落。以正则的方式包含多个预期结果,是预期结果EXPECT段的一种变体。
EXPECTHEADERS测试脚本的预期头部内容选填段落.测试脚本期待HTTP头部返回,是预期结果EXPECT段的另一种格式。验证过程中会按头部的字段一一比对测试,比如zlib扩展中,如果开启zlib.output_compression,则在EXPECTHEADERS中包含Content-Encoding: gzip作为预期结果。

phpt文件只是用例文件,它还需要一个控制器来调用这些文件,以实现整个测试过程。PHP的测试控制器文件是源码根目录下的run-tests.php文件。此文件的作用是根据传入的参数,分析用例相关数据,执行测试过程。其大概过程如下:

  1. 分析输入的命令行,根据参数配置相关参数,初始化各种信息。
  2. 分析用例输入参数,获取需要执行的用例文件列表。PHP支持指定单文件用例执行,支持多文件用例执行,支持* .phpt多用例执行,支持* .phpt简化版本多用例执行(相当于.phpt)。
  3. 遍历用例文件列表,执行每一个用例。对于每个用例,PHP会具体解析测试脚本中各个段落的含义,清除所有上次测试的记录与设置将准备此次的测试环境,并把各种中间文件和日志文件准备好,然后用环境变量 TEST_PHP_EXECUTABLE 指定的 PHP 可执行对象运行实际的测试语句。最后将运行后的结果和测试脚本中的预期结果(EXPECT*段)进行比较,如果比较结果一致,则测试通过;如果不一致,则测试失败,最后将结果信息一一记录到用户设置的日志文件中。
  4. 生成测试结果。

这仅仅是执行的过程,除此之外,还有若干准备和清理工作,如,对上次测试遗留下的环境的清理,本次测试所必须的环境变量的读取与设置,对测试参数的解析,测试脚本名的解析,各种输出文件的准备等等

以测试脚本/tests/basic/001.phpt为例:

[php]
--TEST--
Trivial "Hello World" test
--FILE--
<?php echo "Hello World"?>
--EXPECT--
Hello World

这个用例脚本只包含必填的三项。测试控制器会执行--FILE--下面的PHP文件,如果最终的输出是--EXPECT--所期望的结果则表示这个测试通过,如果不一致,则测试不通过,最终这个用例的测试结果会汇总会所有的测试结果集中。

更详细的关于run-test.php的用法:
http://www.ibm.com/developerworks/cn/opensource/os-cn-php-autotest/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值