added a PiTest section to HOWTO.md
This commit is contained in:
parent
2fa728cc45
commit
d3db9d1392
41
README.md
41
README.md
@ -98,3 +98,44 @@ To create and push a new tag use:
|
||||
After you've moved an existing the tag to another commit, you can use:
|
||||
|
||||
git push origin HOWTO-... --force
|
||||
|
||||
## Special Build Tasks
|
||||
|
||||
Besides common build tasks like `build`, `test` or `bootRun` this projects has some not so common tasks which are explained in this section.
|
||||
|
||||
### Mutation Testing PiTest
|
||||
|
||||
./gradlew pitest
|
||||
|
||||
Runs (almost) all JUnit tests under mutation testing.
|
||||
Mutation testing is a means to determine the quality of the tests.
|
||||
|
||||
#### Some Background Information on Mutation Testing
|
||||
|
||||
PiTest does it with these steps:
|
||||
|
||||
- initially PiTest checks which production code is executed by which tests
|
||||
- if the tests don't pass, it stops
|
||||
- otherwise the production code is 'mutated' and PiTest checks whether this makes a test fail ('mutant killed')
|
||||
- Finally it checks thresholds for coverage and mutant killing.
|
||||
|
||||
More information about can be found here:
|
||||
|
||||
- PiTest: http://pitest.org/
|
||||
- gradle-plugin: https://gradle-pitest-plugin.solidsoft.info/
|
||||
|
||||
#### How to Configure PiTest
|
||||
|
||||
These thresholds can be configured in `build.gradle`,
|
||||
but we should generally not lower these.
|
||||
|
||||
There is also a list of excluded files, all generated by JHipster or MapStruct, not containing any changes by us.
|
||||
|
||||
As you might figure, mutation testing is CPU-hungry.
|
||||
To limit load in our Jenkins build server, it only uses 2 CPU threads, thus it needs over an hour.
|
||||
|
||||
If you want to spend more CPU threads on your local system, you can change that via command line:
|
||||
|
||||
./gradlew pitest -Doverride.pitest.threads=7
|
||||
|
||||
I suggest to leave one CPU thread for other tasks or your might lag extremely.
|
||||
|
Loading…
Reference in New Issue
Block a user