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

Add test coverage instructions #166

Merged

Conversation

Jagrutiti
Copy link
Contributor

@Jagrutiti Jagrutiti commented Oct 2, 2022

Add test coverage instructions

Adding instructions to understand test coverage in CONTRIBUTING.md

As a newbie, I was confused to get to the bottom of it. Here I am documenting the steps that helped me.

@Jagrutiti Jagrutiti requested a review from a team as a code owner October 2, 2022 04:29

The file will have a list of package names. You can click on them to find a list of class names.

The lines of the code will be covered in three different colors. Red, green, and orange.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Here I do not know what the orange color means. That is why I have not added anything about it.

I was thinking of adding screenshots. But then thought against it. The instructions will help someone understand what is happening unless any of the steps change in the future.

Copy link
Contributor

Choose a reason for hiding this comment

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

The orange color means that one or more of the paths through that statement have not been executed.

Consider the following statement:

 String name = importantArgument != null ? importantArgument.getName() : "unknown name";

There are two paths in that statement, one when importantArgument is null and one when it is not null. If the statement is never called with importantArgument as null, then the line will be colored orange to indicate that at least one path is not covered.

If you prefer a more automatic way of viewing the results, you could configure a Jenkins job that uses the JaCoCo plugin to display the results within a Jenkins job. You can see that in a job definition that I maintain.

Copy link
Contributor

@MarkEWaite MarkEWaite left a comment

Choose a reason for hiding this comment

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

Thanks for the contribution! The Windows example needs a change, but otherwise that looks good


The file will have a list of package names. You can click on them to find a list of class names.

The lines of the code will be covered in three different colors. Red, green, and orange.
Copy link
Contributor

Choose a reason for hiding this comment

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

The orange color means that one or more of the paths through that statement have not been executed.

Consider the following statement:

 String name = importantArgument != null ? importantArgument.getName() : "unknown name";

There are two paths in that statement, one when importantArgument is null and one when it is not null. If the statement is never called with importantArgument as null, then the line will be colored orange to indicate that at least one path is not covered.

If you prefer a more automatic way of viewing the results, you could configure a Jenkins job that uses the JaCoCo plugin to display the results within a Jenkins job. You can see that in a job definition that I maintain.

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
@MarkEWaite MarkEWaite merged commit ccea171 into jenkinsci:master Oct 2, 2022
@MarkEWaite MarkEWaite added the documentation Improvements or additions to documentation label Oct 2, 2022
@MarkEWaite MarkEWaite changed the title feat: adding intructions to understand test coverage in contributing.md Add test coverage instructions Oct 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants