brainbits/phpstan-rules

PHPStan 扩展,包含严格且具有意见的规则,用于提高测试代码质量。

安装次数: 12,407

依赖: 8

建议者: 2

安全: 0

星标: 1

关注者: 5

分支: 1

开放问题: 1

类型:phpstan-extension

3.1.2 2024-02-21 11:06 UTC

This package is auto-updated.

Last update: 2024-09-22 12:10:35 UTC


README

Continuous Integration Coverage Status Codacy Badge Latest Stable Version License

此扩展为 PHPStan 静态分析工具提供了高度意见化和严格的测试用例规则。

安装

运行

$ composer require --dev brainbits/phpstan-rules

用法

此库提供的所有规则都包含在rules.neon中。

当使用phpstan/extension-installer时,rules.neon将自动包含。

否则您需要将rules.neon包含在您的phpstan.neon

# phpstan.neon
includes:
    - vendor/brainbits/phpstan-rules/rules.neon

规则

此软件包为使用phpstan/phpstan提供了以下规则

CoversClassExistsRule

此规则检查被@covers注释或#[CoversClass]属性覆盖的类是否存在。

CoversClassPresentRule

此规则强制您在单元测试中指定@covers注释或#[CoversClass]#[CoversFunction]#[CoversNothing]属性(默认:PHPUnit\Framework\TestCase)。

原因

  1. 它防止代码覆盖率总和显示高于预期的值。

// tests/ExampleTestCase/Unit/MyInvalidClassTest.php
namespace ExampleTestCase\Unit;

final class MyInvalidClassTest extends \PHPUnit\Framework\TestCase {}

// tests/ExampleTestCase/Unit/MyClassTest.php
namespace ExampleTestCase\Unit;

#[\PHPUnit\Framework\Attributes\CoversClass(MyClass::class)
final class MyClassTest extends \PHPUnit\Framework\TestCase {}

默认值

  • 默认情况下,此规则通过检查命名空间(必须包含字符串Unit)和类名后缀(必须以字符串Test结尾)来检测单元测试。

检测单元测试命名空间

如果您想更改上述的命名空间字符串检查,您可以在unitTestNamespaceContainsString参数中设置自己的字符串进行检查。

# phpstan.neon
parameters:
    brainbits:
        unitTestNamespaceContainsString: CustomTestPath