lstrojny/phpunit-clever-and-smart

PHPUnit 的智能测试运行器

0.5.0 2014-03-13 17:41 UTC

This package is auto-updated.

Last update: 2024-09-16 05:08:22 UTC


README

Build Status Dependency Status Average time to resolve an issue Percentage of issues still open

使命

通过将测试用例结果存储在数据库中,并按以下顺序重新排序连续运行中的测试,以启用快速反馈循环

  1. 失败和错误
  2. 迄今为止未记录的测试
  3. 按执行时间升序排列的剩余测试(最快优先)

它可能还不是非常稳定,但您可以试一试。

它能做什么

一次运行带有错误的测试套件

PHPUnit 3.7.28 by Sebastian Bergmann.

.............................................FSFS..............  63 / 280 ( 22%)
............................................................... 126 / 280 ( 45%)
............................................................... 189 / 280 ( 67%)
............................................................... 252 / 280 ( 90%)
.........................

重新运行该测试套件,看看之前失败的测试是如何被排序到测试运行的开头的

PHPUnit 3.7.28 by Sebastian Bergmann.

FSFS...........................................................  63 / 280 ( 22%)
............................................................... 126 / 280 ( 45%)
............................................................... 189 / 280 ( 67%)
............................................................... 252 / 280 ( 90%)
.........................

安装

将以下行添加到您的项目的 composer.json require-dev 部分。

"lstrojny/phpunit-clever-and-smart": "0.*"

配置

为了玩转它,将其添加到您的 phpunit.xml(.dist)

    <listeners>
        <listener class="PHPUnit\Runner\CleverAndSmart\TestListener">
            <arguments>
                <object class="PHPUnit\Runner\CleverAndSmart\Storage\Sqlite3Storage"/>
            </arguments>
        </listener>
    </listeners>

您可能需要通过传递路径到 Sqlite3Storage 类来更改 sqlite 存储文件的路径

    <listeners>
        <listener class="PHPUnit\Runner\CleverAndSmart\TestListener">
            <arguments>
                <object class="PHPUnit\Runner\CleverAndSmart\Storage\Sqlite3Storage">
                    <arguments>
                        <string>/my/path/to/.phpunit-cas.db</string>
                    </arguments>
                </object>
            </arguments>
        </listener>
    </listeners>

路线图

  • 尽可能多地测试它
  • 稳定化
  • 合并到 PHPUnit 核心中