Closed stronk7 closed 2 years ago
For the records, have run it against core with:
$ local/codechecker/phpcs/bin/phpcs --standard=moodle --extensions=php --sniffs=moodle.PHPUnit.TestCaseCovers .
And:
Ciao :-)
Going ahead, after discussing it with the team (also was shared some days ago @ dev chat, just in case).
This new feature will be in charge of validating the presence and correctness of PHPUnit coverage annotations/tags.
Restrictions:
_test.php
._test
or_testcase
.test_
.Warnings implemented:
@covers
and@coversNothing
information are missing.@coversNothing
(at class) and@covers
(at method) combinations.@coversNothing
present both at class and method.Errors implemented:
@coversNothing
and@covers
in the same class or method.@coversDefaultClass
is used in method.@coversNothing
tag has any value.@covers
or@coversDefaultClass
tags don't have any value.@coversDefaultClass
tag doesn't start with \ (FQCN).@coversDefaultClass
tag has :: (reserved for@covers
).@covers
tag doesn't start with \ (FQCN) or :: (method).96.67% line coverage achieved (soon will be 100%, another PR incoming).
Impact notes: See that, while adding
@covers
annotations to various unit tests, it's also mandatory to add a description to them. That's because thelocal_moodlecheck
(in charge of examining phpdoc blocks) accepts the absence of phpdoc blocks, but once they exist, the description in mandatory. Not sure if we should relax that in moodlecheck or no (being strict, I think it's correct).