命令行测试执行器

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 格式的代码覆盖率报告。

--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.xmlphpunit.xml.dist

--no-configuration

忽略配置文件

--include-path

增加include_path的值,可以指定多个值

-d

修改PHP的配置值选项

发布了184 篇原创文章 · 获赞 72 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/YQXLLWY/article/details/89289959
今日推荐