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
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,28 @@ Please don't introduce new spotbugs output.
* `mvn spotbugs:check` to analyze project using [Spotbugs](https://spotbugs.github.io)
* `mvn spotbugs:gui` to review report using GUI

## Fetching code coverage

Once you get the report code coverage, there are a couple ways you can fetch the classes that are covered in tests.

This depends a lot on the operating system and environment. The following commands will open the `index.html` file in the browser.

* Windows - `target/site/jacoco/index.html`
* Linux - `xdg-open target/site/jacoco/index.html`
* Gitpod - `cd target/site/jacoco && python -m http.server 8000`

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.


The red lines are not covered in the tests. The green lines are covered with tests.

Your goal is to add to tests that covers one or more of the red lines with the new tests.





## Report an issue

Report issues and enhancements with the link:https://www.jenkins.io/participate/report-issue/redirect/#15873[Jenkins issue tracker].
Expand Down