3 命令行测试执行器
命令行输出
这里主要就是介绍phpunit
的显示结果
首先第一行是PHPUnit
的版本信息:
PHPUnit 8.1.0 by Sebastian Bergmann and contributors.
第二行就是结果,有以下结果,测试了多少个方法,就有多少个以下的值:
.
执行成功F
断言失败R
当测试被标记为有风险时输出S
当测试被跳过时输出I
当测试被标记为不完整或者未实现时输出
接下来就是针对结果的详细说明。
命令行选项
测试文件
测试文件要满足以下2个条件之一就可以:
- 继承
PHPUnit\Framework\TestCase
类 - 实现
public static function suite()
,并在其中返回PHPUnit_Framework_Test*
的对象
第一个条件很简单,接下来演示第二种方法:
class UserStoreTest
{
public static function suite()
{
// 这个类我也不知道有什么用,所以就先直接返回一个空对象
return new \PHPUnit\Framework\TestSuite();
}
}
命令行参数
生成指定格式的日志文件
请注意,此功能仅当安装了 tokenizer 和 Xdebug 这两个 PHP 扩展后才可用。
--coverage-clover
为运行的测试生成带有代码覆盖率信息的 XML 格式的日志文件。
--coverage-crap4j
生成 Crap4j 格式的代码覆盖率报告。
扫描二维码关注公众号,回复: 8495203 查看本文章
--coverage-html
生成 HTML 格式的代码覆盖率报告。
--coverage-php
生成一个序列化后的 PHP_CodeCoverage 对象,此对象含有代码覆盖率信息。
--coverage-text
为运行的测试以人们可读的格式生成带有代码覆盖率信息的日志文件或命令行输出。
不需要安装额外拓展的日志文件生成
--log-junit
为运行的测试生成 JUnit XML 格式的日志文件。
--testdox-html
和--testdox-text
为运行的测试以 HTML 或纯文本格式生成敏捷文档。
--testdox
将测试进度以敏捷文档方式报告。
过滤测试的内容
--filter
只运行名称与给定模式匹配的测试。
TestNamespace\TestCaseClass::testMethod
指定测试类中的指定方法
TestNamespace\TestCaseClass::testMethod with data set #0
TestNamespace\TestCaseClass::testMethod with data set "my named data"
当有数据提供器提供数据时,有以上两种方式。而且最后的#0
或者my named data
,都不能从指定的数组下标开始,都是从第一个开始的。
class TestCaseClass extends TestCase
{
/**
* @dataProvider provider
*/
public function testMethod($data)
{
$this->assertTrue($data);
}
public function provider()
{
return [
'my named data' => [true],
'my data' => [true]
];
}
}
phpunit UserStoreTest.php --filter UserStoreTest::testMethod with data set "my named data"
--testsuite
只运行名称与给定模式匹配的测试套件。
组相关操作
--group
只运行来自指定分组(可以多个)的测试。可以用
@group
标注为测试标记其所属的分组。
@author
标注是@group
的一个别名,允许按作者来筛选测试。
--exclude-group
排除来自指定分组(可以多个)的测试。可以用
@group
标注为测试标记其所属的分组。
--list-groups
文件后缀相关操作
--test-suffix
只查找文件名以指定后缀(可以多个)结尾的测试文件。
忽略部分测试
--disallow-todo-tests
不执行文档注释块中含有
@todo
标注的测试。
限制运行时长
--enforce-time-limit
根据测试规模对其加上执行时长限制
--process-isolation
每个测试都在独立的PHP进程中运行
--static-backup
备份并还原用户定义的类中的静态属性
优化输出
--colors
使用彩色输出
--verbose
输出更详尽的信息,例如不完整或者跳过的测试的名称。
--debug
输出调试信息,例如当一个测试开始执行时输出其名称
设置停止条件
--stop-on-error
首次错误出现后停止执行。
--stop-on-failure
首次错误或失败出现后停止执行。
--stop-on-risky
首次碰到有风险的测试时停止执行。
--stop-on-skipped
首次碰到跳过的测试时停止执行
--stop-on-incomplete
首次碰到不完整的测试时停止执行
增加运行的次数
--repeat
将测试重复运行指定次数。
--bootstrap
在测试前先运行一个
bootstrap.php
文件
配置文件信息
--configuration
指定配置文件,配置文件默认是phpunit.xml
和phpunit.xml.dist
--no-configuration
忽略配置文件
--include-path
增加include_path
的值,可以指定多个值
-d
修改PHP的配置值选项