ockcyp/covers-validator

验证PHPUnit测试中的@covers标签

v1.6.0 2022-10-04 20:00 UTC

README

Build Status Coverage Status Scrutinizer Code Quality License Total Downloads

PHPUnit @covers标签验证器

PHPUnit在测试包含无效的@covers标签时无法生成覆盖率报告。

此工具允许您确定哪些测试包含无效的@covers标签,而无需运行覆盖率。

通常,覆盖率报告的运行频率低于测试,因为运行需要很长时间。此工具验证@covers标签的速度比您运行测试要快。

另请参阅: dunkelfrosch/phpcoverfish

为什么?

Trying to @cover or @use not existing class or interface "NonExistentClass".
Trying to @cover or @use not existing method "ExistingClass::nonExistantMethod".

见: phpunit/issues/1758
另请参阅: phpunit/issues/1791

安装

composer require --dev ockcyp/covers-validator

PHPUnit版本

最新版本的covers-validator支持PHP 7.1+和PHPUnit 7+。请使用版本0.5用于旧版PHP和PHPUnit版本。

以下为0.5版本的安装方法

composer require --dev ockcyp/covers-validator "^0.5"

用法

vendor/bin/covers-validator

提供可选的-c参数以加载特定的PHPUnit配置文件

vendor/bin/covers-validator -c tests/Fixtures/configuration.xml

覆盖PHPUnit配置中指定的bootstrap

vendor/bin/covers-validator --bootstrap tests/bootstrap.php

通过提供-q参数禁用输出

vendor/bin/covers-validator -q

调整详细程度

示例输出

正常详细程度

Invalid - OckCyp\CoversValidator\Tests\Fixtures\TwoTestCoveringNonExistentClassTest::testDummyTest

There were 1 test(s) with invalid @covers tags.

最大详细程度(调试)

Configuration file loaded: /home/omer/Projects/Personal/covers-validator/tests/Fixtures/configuration-all.xml

Validating OckCyp\CoversValidator\Tests\Fixtures\TwoTestCoveringExistingClassTest::testDummyTest...
Valid - OckCyp\CoversValidator\Tests\Fixtures\TwoTestCoveringExistingClassTest::testDummyTest
Validating OckCyp\CoversValidator\Tests\Fixtures\TwoTestCoveringNonExistentClassTest::testDummyTest...
Invalid - OckCyp\CoversValidator\Tests\Fixtures\TwoTestCoveringNonExistentClassTest::testDummyTest

There were 1 test(s) with invalid @covers tags.

提示: 命令在任何一个@covers标签无效时返回退出代码1。请将其用于失败构建。

测试

要运行测试,请执行

vendor/bin/phpunit