sergekukharev/phpunit-fasttrap

在您的PHPUnit测试套件中找到慢速测试

1.0.0 2015-10-27 11:02 UTC

This package is not auto-updated.

Last update: 2024-09-18 10:58:08 UTC


README

FastTrap会在您的控制台直接报告PHPUnit测试套件中运行的快速测试。

它的典型用法 - 您需要将集成测试与混合在一起的单元测试分开。单元测试的主要优点是其速度,因此您可以通过添加此监听器来检测大部分单元测试。

安装

FastTrap可以通过Composer安装,并且应作为require-dev依赖项添加。

composer require --dev sergekukharev/phpunit-fasttrap

用法

通过将以下内容添加到测试套件的phpunit.xml文件中启用所有默认设置

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

现在以正常方式运行测试套件。如果测试运行时间不超过阈值(默认为500ms),FastTrap将在套件完成后在控制台中报告这些测试。

配置

FastTrap有两个可配置参数

  • fastThreshold - 测试执行时间达到多少毫秒之前才会被认为是“快速”(默认:500ms)
  • reportLength - 报告中包含的快速测试数量(默认:10个测试)

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

<phpunit bootstrap="vendor/autoload.php">
    <!-- ... other suite configuration here ... -->

    <listeners>
        <listener class="SergeKukharev\PHPUnit\Listener\FastTrapListener">
            <arguments>
                <array>
                    <element key="fastThreshold">
                        <integer>500</integer>
                    </element>
                    <element key="reportLength">
                        <integer>100</integer>
                    </element>
                </array>
            </arguments>
        </listener>
    </listeners>
</phpunit>

这允许您为自己设置“快速”测试的标准,以及您关心的数量。

每个测试方法的自定义快速阈值

您可能有一些运行时间稍长的测试,并希望将快速阈值设置得比其他测试套件更高。

您可以使用@fastThreshold注解为每个测试方法设置自定义快速阈值。此数字可以高于或低于默认阈值,并将用于该特定测试的默认阈值。

class SomeTestCase extends \PHPUnit_Framework_TestCase
{
    /**
     * @fastThreshold 5000
     */
    public function testLongRunningProcess()
    {
        // Code to exercise your long-running SUT
    }
}

灵感来源

本项目受John Kary的SpeedTrap项目和Fork启发。这两者之间只有一个区别 - Fast trap能够检测快速测试。

SpeedTrap项目本身受Rspec的-p选项的启发,该选项显示有关快速测试的反馈。

许可证

phpunit-fasttrap可在MIT许可证下使用。