moodlehq / moodle-local_codechecker

A Moodle local plugin providing a simple web UI to run the MoodleCS coding style checks with PHP_CodeSniffer.
63 stars 72 forks source link

Add new TestCaseCovers sniff to control @covers tags in unit tests #178

Closed stronk7 closed 2 years ago

stronk7 commented 2 years ago

This new feature will be in charge of validating the presence and correctness of PHPUnit coverage annotations/tags.

Restrictions:

Warnings implemented:

Errors implemented:

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 the local_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).

stronk7 commented 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 :-)

stronk7 commented 2 years ago

Going ahead, after discussing it with the team (also was shared some days ago @ dev chat, just in case).