Add new TestCaseCovers sniff to control @covers tags in unit tests #178
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 thesame 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 variousunit 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).