Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generic/DisallowYodaConditions: add code coverage ignore annotation for untestable line #525

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

rodrigoprimo
Copy link
Contributor

Description

This PR adds the @codeCoverageIgnoreStart/@codeCoverageIgnoreEnd PHPUnit annotations to ignore, for the purposes of code coverage, a line that can't be tested. I considered doing this initially when I worked on improving code coverage for this sniff in #465, but I wrongly assumed that was not an option due to the Squiz.Commenting.InlineComment.InvalidEndChar error (which is part of the standard used by PHPCS).

What I failed to notice back then is that I was adding the annotation below a comment, and this triggers the error:

// Shouldn't be possible but may happen if external sniffs are using this method.
// @codeCoverageIgnoreStart

Adding the annotation before the comment as it is done in this PR does not trigger the error because the Squiz.Commenting.InlineComment sniff will only trigger the InvalidEndChar error if the first character of the comment is a letter.

I also considered using return true; // @codeCoverageIgnore, but this is not an option because it triggers Squiz.Commenting.PostStatementComment.Found.

Related issues/external references

Part of #146

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
    • This change is only breaking for integrators, not for external standards or end-users.
  • Documentation improvement

PR checklist

  • I have checked there is no other PR open for the same change.
  • I have read the Contribution Guidelines.
  • I grant the project the right to include and distribute the code under the BSD-3-Clause license (and I have the right to grant these rights).
  • I have added tests to cover my changes.
  • I have verified that the code complies with the projects coding standards.
  • [Required for new sniffs] I have added XML documentation for the sniff.

This commit adds the `@codeCoverageIgnoreStart/@codeCoverageIgnoreEnd`
PHPUnit annotations to ignore, for the purposes of code coverage, a
line that can't be tested. I considered doing this initially when I
worked on improving code coverage for this sniff in PHPCSStandards#465, but I
wrongly assumed that was not an option due to the
`Squiz.Commenting.InlineComment.InvalidEndChar` error (which is part
of the standard used by PHPCS).

What I failed to notice back then is that I was adding the annotation
below a comment, and this triggers the error:

```
// Shouldn't be possible but may happen if external sniffs are using this method.
// @codeCoverageIgnoreStart
```

Adding the annotation before the comment as it is done in this commit
does not trigger the error because the `Squiz.Commenting.InlineComment`
sniff will only trigger the `InvalidEndChar` error if the first
character of the comment is a letter.

Using `return true; // @codeCoverageIgnore` is not an option because it
triggers `Squiz.Commenting.PostStatementComment.Found`.
Copy link
Member

@jrfnl jrfnl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also considered using return true; // @codeCoverageIgnore, but this is not an option because it triggers Squiz.Commenting.PostStatementComment.Found.

I'm not too keen on the current change and would rather use the trailing comment version. Maybe we should consider opening an issue to improve the Squiz.Commenting.PostStatementComment first ?
I mean, IIRC that sniff does allow for trailing PHPCS annotations, so maybe it should also allow for trailing annotations related to some other tools ?

@rodrigoprimo
Copy link
Contributor Author

Here is the issue: #560

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants