phpt文件说明

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

转自:https://github.com/reeze/tipi/blob/248c0ab7f966f10db5bc300c2ae82214cb2010b3/book/E-phpt-file.markdown

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--所期望的结果则表示这个测试通过,如果不一致,则测试不通过,最终这个用例的测试结果会汇总会所有的测试结果集中。


习题5-7 使用函数求余弦函数的近似值 (15分) 本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x​0​​/0!−x​2​​/2!+x​4​​/4!−x​6​​/6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输... 阅读详情

相关推荐

本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e

本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。 裁判测试程序样例: #include <stdio.h> #include <ma

weixin_64175355的博客 1万+

PHP文件类型检测:通用代码类,支持zip、rar等文件

的函数,该函数接受文件路径作为参数,并返回文件的类型。如果无法匹配任何已知的文件类型,则返回 ‘Unknown’,如果无法打开文件,则返回 ‘Error’。请注意,该方法是通过检测文件头来判断文件类型的一种简单而常见的方法。因此,在开发中,为了确保文件类型的准确性和安全性,建议结合其他验证方法,例如文件扩展名检测或使用专门的文件处理库。在PHP开发中,有时候我们需要通过文件头来检测文件的类型,比如判断一个文件是否是zip或rar压缩文件。在上述示例中,我们传递了一个zip文件的路径,并打印出文件类型。

BUG?不存在的! 310

6-10 使用函数求余弦函数的近似值 (15 分)本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:cos(x)=x0/0!−x2/2!+x4/4!−x6/

6-10 使用函数求余弦函数的近似值 (15 分) 本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。 裁判测试程序样例: #include <

PLUSFINE的博客 4799

文件包含漏洞01】文件包含功能介绍与测试——以PHP语言为例

1. 掌握4种文件包含函数的使用方法; 2. 了解PHP配置文件文件包含功能的限制。

Fighting_hawk的博客 3318

一般测试php文件用什么,测试 PHP 几种方法写入文件的效率

测试 PHP 几种方法写入文件的效率前置条件:所有测试生成的都写入一个新文件, 如果时同一个文件名, 那么每次执行脚本前, 需要把该日志文件删掉, 确保每次执行时日志文件都是重新创建的.每次执行都是往日志文件中使用多进程写入 90000 行日志. 每种方式分成四种对照组测试:30*3000 加锁 (即 30 个进程每个进程写入 3000 行, 总共 90000 行, 写入时需对日志文件上独占锁)....

weixin_35893552的博客 392

php自动化脚本语言,浅析 PHP 官方自动化测试方法

PHP 官方 自动化 测试 方法 简述 以下介绍以 PHP 最新 官方 版本 5.2.8 的源码在 LINUX 系统平台上的分析为例展开。首先来看一下 PHP 的 自动化 测试 脚本 PHPT 脚本。 自动化 测试 脚本 PHPT 示例 PHP测试 脚本是以“ .phpt ”为后缀,包含 TEST,FILEPHP 官方自动化测试方法简述以下介绍以 PHP 最新官方版本 5.2.8 的源码在 ...

weixin_39597323的博客 323

PHP命令行模式详解

PHP命令行界面(CLI)提供了一系列选项,让用户能够在命令行中执行PHP脚本、检查PHP配置等。这些选项对于开发、调试和运维工作都非常有用,可以让你更加灵活地使用PHP CLI环境。其他选项允许显示有关函数、类、扩展和Zend扩展的信息,以及查看特定扩展的配置。

jkzyx123的博客 963

c++实验2:6-4 求余弦函数近似值

6-4 使用函数求余弦函数的近似值 (15 分) 本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x ​0​​ /0! − x2/2! + x4/4! − x​6/6! + ⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算...

Skyed_blue的博客 4180

C语言:使用函数求余弦函数的近似值

本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x​∧0/0!−x∧​2 /2!+x​∧4 /4!−x∧6 /6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内 裁判测试程序样例: #include <stdio.h> #include <

qq_53452010的博客 1万+

实验5-10 使用函数求余弦函数的近似值 (15 分)

浙大版《C语言程序设计实验与习题指导(第3版)》题目集 实验5-10 使用函数求余弦函数的近似值 (15 分) 本题要求实现一个函数,用下列公式求cos(x)cos(x)cos(x)的近似值,精确到最后一项的绝对值小于eee:cos(x)=x00!−x22!+x44!−x66!+⋯cos(x) = \frac{x^0}{0!} - \frac{x^2}{2!} + \frac{x^4}{4!} -...

FairyPrimordial的博客 6702

6-16 使用函数求余弦函数的近似值 (15 分)

6-16 使用函数求余弦函数的近似值 (15 分) 本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x​0​​/0!−x​2​​/2!+x​4​​/4!−x​6​​/6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误...

2665000101@qq.com 5798

使用函数求余弦函数的近似值

6-40 使用函数求余弦函数的近似值 (15分) 本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x ​0 ​​ /0!−x ​2 ​​ /2!+x ​4 ​​ /4!−x ​6 ​​ /6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos...

weixin_45774080的博客 2498

(PTA)6-10 使用函数求余弦函数的近似值 (15分)

本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x ​0 ​​ /0!−x ​2 ​​ /2!+x ​4 ​​ /4!−x ​6 ​​ /6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos...

Overdrive13的博客 4831

浙大 | PTA 习题5-7 使用函数求余弦函数的近似值 (15分)

本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x0/0!−x2/2!+x4/4!−x6/6!...cos(x) = x^0/0! - x^2/2!+x^4/4!-x^6/6!...cos(x)=x0/0!−x2/2!+x4/4!−x6/6!... 函数接口定义: double funcos( double e, double x ); 其中...

赞美太阳的博客 3934

pta使用函数求余弦函数的近似值

本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x​0/0!−x​2/2!+x​4/4!−x​6/6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。 裁判测试程序样例: #include <stdio.h> #include <math

linxich的博客 6978

C语言——本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e。

cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯ double fact(int n)//计算阶乘使用递归 { if(n==0||n==1) return 1; else return n*fact(n-1); } double funcos( double e, double x ) { double sum=1;//和的第一个值是1 int t; for(int i=1; ;i++) {

soobinnim的博客 8725

使用函数求余弦函数的近似值 (15 分)

使用函数求余弦函数的近似值 (15 分) 本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。 裁判测试程序样例: #include <stdi.

小白先生的博客 2万+

PTA-10-使用函数计算余弦函数的近似值

#include <stdio.h> #include <math.h> double funcos( double e, double x ); int main() { double e, x; scanf("%lf %lf", &e, &x); printf("cos(%.2f) = %.6f\n", x, funcos(e, x)); return 0; } /* 你的代码将被嵌在这里 */ double funco.

展信佳,当你看到这段简介的时候,我“风吹海洋浪”已走马上任CSDN博客平台。我来这只办一件事:致力于将模糊的概念清晰化,技术的语言通俗化,复杂的关系逻辑化,孤岛的知识碎片结构化,让我一心和技术大佬们共同进步,最重要的是!!!!!忘记【你】 2351
上一篇: PHP输出缓存控制详解 ob_start,flush,ob_flush
下一篇: [转]真正把Ubuntu装到移动硬盘里
林子木
博客等级 码龄17年 197粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值