ozh/phpunit-overassertive

在您的PHPUnit测试套件中查找过度断言的测试

dev-master 2020-03-25 13:08 UTC

This package is auto-updated.

Last update: 2024-09-09 19:47:36 UTC


README

在同一个测试中有多个断言是正常的,但当断言失败时,整个测试都会终止,并且不会测试同一测试中的其他断言。

根据您要测试的内容和您的编码方式,您可能需要将一些测试分割成几个子测试。

OverAssertive 是一个PHPUnit扩展,它会在控制台中报告哪些测试有“太多”断言,其中“太多”是您定义的,以帮助您检查并可能重构一些测试。

overassertive

用法

通过向您的测试套件的 phpunit.xml 文件中添加以下内容启用它

<phpunit bootstrap="vendor/autoload.php">
...
    <listeners>
        <listener class="Ozh\PHPUnit\Listener\OverAssertiveTestsListener" />
    </listeners>
</phpunit>

如果您没有使用自动加载器,也可以指定库位置

<phpunit bootstrap="boostrap.php">
...
    <listeners>
        <listener class="Ozh\PHPUnit\Listener\OverAssertiveTestsListener" file="/path/to/OverAssertiveTestsListener.php" />
    </listeners>
</phpunit>

现在正常运行您的测试套件。OverAssertive 将在套件完成后在控制台中报告过度断言的测试。

配置

OverAssertive有两个可配置的参数

  • alertThreshold - 使测试过度断言的断言数量(默认:10个断言)
  • reportLength - 报告中包含的过度断言测试数量(默认:10个测试)

这些配置参数在添加监听器时在 phpunit.xml 中设置

<phpunit ...>
    <!-- ... other suite configuration here ... -->

    <listeners>
        <listener class="Ozh\PHPUnit\Listener\OverAssertiveTestsListener">
            <arguments>
                <array>
                    <element key="alertThreshold">
                        <integer>10</integer>
                    </element>
                    <element key="reportLength">
                        <integer>10</integer>
                    </element>
                </array>
            </arguments>
        </listener>
    </listeners>
</phpunit>

灵感

非常感谢 phpunit-speedtrap

许可证

你想做什么就做什么。