-
phpt文件内容解析
phpt文件用于PHP的自动化测试,这是PHP用自己来测试自己的测试数据用例文件。 测试脚本通过执行PHP源码根目录下的run-tests.php,读取phpt文件执行测试。
phpt文件包含 TEST,FILE,EXPECT 等多个段落的文件。在各个段落中,TEST、FILE、EXPECT是基本的段落, 每个测试脚本都必须至少包括这三个段落。其中:
- TEST段可以用来填写测试用例的名字。
- FILE段是一个 PHP 脚本实现的测试用例。
- EXPECT段则是测试用例的期待值。
在这三个基本段落之外,还有多个段落,如作为用例输入的GET、POST、COOKIE等,此类字段最终会赋值给env['HTTP_COOKIE'],$env变量将作为用例中脚本的执行环境。一些主要段落说明如下表所示:
PHP测试脚本中的段落说明
phpt文件只是用例文件,它还需要一个控制器来调用这些文件,以实现整个测试过程。 PHP的测试控制器文件是源码根目录下的run-tests.php文件。此文件的作用是根据传入的参数,分析用例相关数据,执行测试过程。 其大概过程如下:
- 分析输入的命令行,根据参数配置相关参数,初始化各种信息。
- 分析用例输入参数,获取需要执行的用例文件列表。PHP支持指定单文件用例执行,支持多文件用例执行, 支持 .phpt多用例执行,支持 .phpt简化版本多用例执行(相当于.phpt)。
- 遍历用例文件列表,执行每一个用例。对于每个用例,PHP会具体解析测试脚本中各个段落的含义, 清除所有上次测试的记录与设置将准备此次的测试环境,并把各种中间文件和日志文件准备好, 然后用环境变量 TEST_PHP_EXECUTABLE 指定的 PHP 可执行对象运行实际的测试语句。 最后将运行后的结果和测试脚本中的预期结果(EXPECT*段)进行比较,如果比较结果一致,则测试通过;如果不一致,则测试失败, 最后将结果信息一一记录到用户设置的日志文件中。
- 生成测试结果。
这仅仅是执行的过程,除此之外,还有若干准备和清理工作,如,对上次测试遗留下的环境的清理, 本次测试所必须的环境变量的读取与设置,对测试参数的解析,测试脚本名的解析,各种输出文件的准备等等
以测试脚本/tests/basic/001.phpt为例:
[php]
--TEST--
Trivial "Hello World" test
--FILE--
<?php echo "Hello World"?>
--EXPECT--
Hello World
这个用例脚本只包含必填的三项。测试控制器会执行--FILE--下面的PHP文件, 如果最终的输出是--EXPECT--所期望的结果则表示这个测试通过,如果不一致,则测试不通过, 最终这个用例的测试结果会汇总会所有的测试结果集中。
本文作者: IvanLee
本文链接:https://www.cnblogs.com/ivanlee717/p/16845865.html
栏目列表
最新更新
博克-定制图例
博克-注释和图例
Bokeh–添加小部件
向博克图添加标签
将交互式滑块添加到博克图
在 Bokeh 中添加按钮
谷歌、微软、Meta?谁才是 Python 最大的金
Objective-C语法之代码块(block)的使用
URL Encode
go语言写http踩得坑
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
[SQL Server]按照设定的周别的第一天算任意
Linux下定时自动备份Docker中所有SqlServer数
六、Danfo.js 数据可视化
五、plotly.js 数据可视化
四、数据分析、清理、转化
三、Danfo.js 入门
第二部分:使用 Danfo.js 和 Dnotebook 的据分
一、现代 JavaScript 概述
javascript 第一部分:基础知识
零、前言
uni-app开发跨平台小程序开发的诸多坑【转
前端设计模式——桥接模式