forked from hcoles/pitest
-
Notifications
You must be signed in to change notification settings - Fork 2
/
hackers_guide.txt
42 lines (26 loc) · 2.36 KB
/
hackers_guide.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# General
Pitest supports all version of Java back to Java 6.
As long as the resulting binaries support Java 6 technically the build itself could be tied to higher versions of Java, but testing is currently tied into building so it must build with Java 6.
It is reccomended to use Java 8 while developing, but be aware that it is not possible to use any Java 8 (or 7) features.
## Structure
Pitest is split into several modules
* pitest - Main mutation engine and other code that must share a JVM with the system under test
* pitest-entry - The main entry point for build tools. Contains code that runs in main controller process.
* pitest-html-report - Generates the html report
* pitest-command-line - Command line tool for running pitet
* pitest-maven - Maven mojo for running pitest
* pitest-ant - Ant task for running pitest
* pitest-maven-verification - Integration tests that execute pitest via maven module
* pitest-java8-verification - Integration tests that validate pitest against java 8 features
* pitest-groovy-verification - Integration tests that validate pitets behaviour with groovy
* pitest-build-config - A minimal checkstyle configuration used in other modules.
Care must be taken not to load the code under test into the JVM within the pitest-entry module (e.g by the use of reflection).
Third party dependencies must not be introduced into the pitest module as they may conflict with those of the code under test. Where dependencies are unavoidable (e.g ASM) they must be shaded to avoid conflict.
Dependencies may be introduced into the other modules, but are discouraged so start a discussion before doing so. Any dependencies introduced must be added to the classpath by users of the command-line tool and Ant.
## Eclipse users
Import everything as an existing maven project. If you do not have groovy plugins installed the `pitest-groovy-verification` module will show errors. Unless you are working on something Groovy related it is easiest just to close the module rather than installing the Groovy dependencies into eclipse.
### Code format
The files `code_format_profile.xml` and `code_cleanup_profile.xml` in the root of the repository.
Will create formatting and cleanup profiles named henry. Some aspects of these will be changed in the future (e.g. the use of columns to layout fields) but they should be used while editing pitest to maintain consistency.
## InteliJ
?