PHPUnit袖珍指南之命令行测试工具_PHP教程
PHPUnit命令行测试工具是通过phpunit命令调用的。如下代码显示如何通过PHPUnit命令行测试工具运行测试。
phpunit ArrayTest PHPUnit 2.3.0 by Sebastian Bergmann. Time: 0.067288 OK (2 tests) |
对每个测试,PHPUnit命令行测试工具打印一个字符表示进程:
·测试成功打印“.”。
·运行测试方法是发生了断言失败打印“F”。
·运行测试方法是发生了错误打印“E”。
·测试没有完成或测试没有实现打印“I”(见本书后“未完成的测试”一章)。
PHPUnit可以区分失败和错误。一个失败是PHPUnit的断言违例,错误是一个意料外的异常或一个PHP错误。有时候这种差别是有用的,因为错误相比失败更容易修正。如果你有一大串问题列表,最好先解决所有错误,然后看看有没有失败遗留下来。
让我们看看如下一些代码命令行测试工具的选项:
phpunit --help PHPUnit 2.3.0 by Sebastian Bergmann. Usage: phpunit [switches] UnitTest [UnitTest.php] --coverage-data <file> Write code-coverage data in raw format to file. --coverage-html <file> Write code-coverage data in HTML format to file. --coverage-text <file> Write code-coverage data in text format to file. --testdox-html <file> Write agile documentation in HTML format to file. --testdox-text <file> Write agile documentation in Text format to file. --log-xml <file> Log test progress in XML format to file. --loader <loader> TestSuiteLoader implementation to use. --skeleton Generate skeleton UnitTest class for Unit in Unit.php. --wait Waits for a keystroke after each test. --help Prints this usage information. --version Prints the version and exits. |
phpunit UnitTest
运行类UnitTest提供的测试,该类应该定义在源文件UnitTest.php中。
类UnitTest必须继承PHPUnit2_Framework_TestCase类,或是提供了公有静态方法suite,并返回PHPUnit2_ Framework_Test对象的类(例如,类PHPUnit2_Framework_TestSuite的一个实例)
phpunit UnitTest UnitTest.php
运行类UnitTest提供的测试,该类要定义在命令指定的源文件(UnitTest.php)中。
--coverage-data, --coverage-html, and --coverage-text
控制运行测试的代码覆盖信息的分析和集合(参见本书后代码覆盖分析一节)
--testdox-html and --testdox-text
以HTML或普通文本格式生成运行测试的敏捷文档(参见本书后的“测试的其他用途”一章)
--log-xml
生成运行测试的XML格式的日志文件。
下一个例子显示为ArrayTest中的测试生成的XML日志文件。
<?xml version="1.0" encoding="UTF-8"?> <testsuites> <testsuite name="ArrayTest" tests="2" failures="0" errors="0" time="0.020026"> <testcase name="testNewArrayIsEmpty" class="ArrayTest" time="0.014449"/> <testcase name="testArrayContainsAnElement" class="ArrayTest" time="0.005577"/> </testsuite> </testsuites> |
下面的XML日志文件是为名为FailureErrorTest的测试类两个测试生成的,一个是testFailure,一个是testError。这显示了失败和错误是如何分别表示的。
<?xml version="1.0" encoding="UTF-8"?> <testsuites> <testsuite name="FailureErrorTest" tests="2" failures="1" errors="1" time="0.013603"> <testcase name="testFailure" class="FailureErrorTest" time="0.011872"> <failure message="" type="PHPUnit2_Framework_AssertionFailedError"></failure> </testcase> <testcase name="testError" class="FailureErrorTest" time="0.001731"> <error message="" type="Exception"></error> </testcase> </testsuite> </testsuites> --loader |
指定将要使用的测试套件加载器。
标准测试套件加载器会在当前工作目录和PHP的include_path configuration指令定义的路径中寻找源文件。按照PEAR的命名规则,形如Project_Package_Class的类名会映射到的源文件为Project/Package/Class.php。
--skeleton
为类Unit(在文件Unit.php中)生成一个名为UnitTest(在文件UnitTest.php中)的测试用例类的框架。对原始类的每个方法,在生成的测试用例类中提供了一个未完成的测试用例(见本书后的“未完成测试”部分)。
下面的例子显示了如何为一个名为Sample的类生成一个测试类的框架。
phpunit --skeleton Sample PHPUnit 2.3.0 by Sebastian Bergmann. Wrote test class skeleton for Sample to SampleTest.php. phpunit SampleTest PHPUnit 2.3.0 by Sebastian Bergmann. I Time: 0.007268 There was 1 incomplete test case: 1) testSampleMethod(SampleTest) OK, but incomplete test cases!!! Tests run: 1, incomplete test cases: 1. |
当你为现有代码书写测试时,你不得不重复很多相同的代码片断,如:
public function testSampleMethod( ) {} |
PHPUnit能帮助你分析现有代码,生成测试用例类的框架。
--wait
每个测试结束时,等待一次击键。这很有用,特别是你在一个只有测试一直运行在打开的窗口中运行测试时。
提示 当被测试代码中有PHP语法错误时,文本界面的测试会直接退出,不输出任何错误信息。标准的测试套件加载器会检查测试套件的源文件的PHP语法错误,但是,它不会检查测试套件包含的源文件的语法错误。PHPUnit的未来版本会用在砂箱中PHP解释器类解决这个问题。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

通过sudo命令,用户可以在提升权限模式下运行命令,而无需切换到超级用户模式。本文将介绍如何在Windows系统中模拟类似于sudo命令的功能。什么是数道司令部?Sudo(“超级用户do”的缩写)是一种命令行工具,允许基于Unix的操作系统(如Linux和MacOS)的用户以提升的权限执行命令,这些权限通常是管理员所拥有的。在Windows11/10中运行SUDO命令然而,随着最新发布的Windows11Insider预览版推出,Windows用户现在也可以体验到这一项功能。这一新功能使用户能够

VSCode设置中文:完全指南在软件开发中,VisualStudioCode(简称VSCode)是一个常用的集成开发环境。对于使用中文的开发者来说,将VSCode设置为中文界面可以提升工作效率。本文将为大家提供一个完整的指南,详细介绍如何将VSCode设置为中文界面,并提供具体的代码示例。第一步:下载安装语言包在打开VSCode后,点击左

随着Windows11的推出,微软引入了一些新的功能和更新,包括一种名为VBS(Virtualization-basedSecurity)的安全功能。VBS利用虚拟化技术来保护操作系统和敏感数据,从而提高系统的安全性。然而,对于一些用户来说,VBS不是必需的功能,甚至可能会影响系统性能。因此,本文将介绍如何在Windows11中关闭VBS的方法,以帮助

本文将向读者介绍在Win11系统中如何使用命令提示符(CommandPrompt)来查找网络适配器的物理地址(MAC地址)。MAC地址是网络接口卡(NIC)的唯一标识符,它在网络通信中扮演着重要角色。通过命令提示符,用户可以轻松地获取到当前计算机上所有网络适配器的MAC地址信息,这对于网络故障排查、配置网络设置等任务非常有帮助。方法一:使用「命令提示符」1、按【Win+X】组合键,或【右键】点击任务栏上的【Windows徽标】,在打开的菜单项中,选择【运行】;2、运行窗口,输入【cmd】命令,然

一、概述sar命令通过从系统活动中收集的数据来展示系统的使用情况报告。这些报告由不同部分组成,每个部分都包含数据类型和收集数据的时间。sar命令的默认模式显示访问CPU的各种资源(如用户、系统、I/O调度等)在不同时间增量下的CPU使用率。此外,它还显示给定时间段内空闲CPU的百分比。报告底部列出了每个数据点的平均值。sar默认每10分钟报告一次收集的数据,但您可以使用各种选项来筛选和调整这些报告。与uptime命令类似,sar命令也可帮助您监测CPU的负载情况。通过sar,您可以了解过度负载发

Win11系统中,可以通过命令来启用或禁用Hyper-V增强会话模式。本文将介绍如何使用命令来进行操作,帮助用户更好地管理和控制系统中的Hyper-V功能。Hyper-V是Microsoft提供的一种虚拟化技术,它内置在WindowsServer和Windows10、11(家庭版除外)中,允许用户在Windows系统中运行虚拟操作系统。虽然虚拟机与宿主机操作系统相隔离,但通过设置,它们依然能够使用宿主机的资源,如声卡和存储设备等。其中一个关键设置就是启用「增强会话模式」。增强会话模式是Hyper

本文详细介绍了将Ubuntu20.04升级到22.04的步骤。对于使用Ubuntu20.04的用户,错过了22.04版本带来的新功能和优势。为了获得更好的体验和安全性,建议及时升级到较新的Ubuntu版本。Ubuntu22.04的代号为“杰米水母”,让我们一起来探索如何获取最新的LTS版本吧!如何通过命令行将Ubuntu20.04升级到22.04掌握命令行会给你带来优势。虽然通过GUI更新Ubuntu是可能的,但我们的重点将是通过命令行。首先,让我们使用以下命令检查当前运行的Ubuntu版本:$

jQuery引用方法详解:快速上手指南jQuery是一个流行的JavaScript库,被广泛用于网站开发中,它简化了JavaScript编程,并为开发者提供了丰富的功能和特性。本文将详细介绍jQuery的引用方法,并提供具体的代码示例,帮助读者快速上手。引入jQuery首先,我们需要在HTML文件中引入jQuery库。可以通过CDN链接的方式引入,也可以下载
