Beim Aufruf des `pitest:mutationCoverage` können Parameter direkt über die Maven Commandline übergeben werden oder in der `pom.xml` eingetragen werden.
### pom.xml
In der `pom.xml` im Bereich von `plugin.pitest.configuration` können die folgenden Parameter definiert werden. Das folgende ist ein Ausschnitt von möglichen Parametern:
| avoidCallsTo | Liste von Packeten und Klassen die außerhalb des Mutations-Ziels liegen. Zeilen, die Aufrufe von Methoden dieser Klassen beinhalten werden nicht mutiert. Default `java.util.logging`, `org.apache.log4j`, `org.slf4j` und `org.apache.commons.logging` |
| excludedClasses | Liste von Klassen die von den Mutationen ausgenommen sind. |
| excludedTestClasses | Liste an Tests die beim ausführen einer `pitest:mutationCoverage` nicht beachtet werden. |
| historyInputFile | Pfad zur History Datei. |
| historyOutputFile | Pfad zur Datei in die die History geschrieben wird. |
| mutators | Liste von Mutations-Operatanten, die angewandt werden sollen. Mögliche Mutationen siehe hier: [Mutationen](https://pitest.org/quickstart/mutators/#RETURN_VALS) |
| outputFormats | Liste von Formaten in denen das Ergebnis ausgegeben werden soll. Default ist `HTML`. |
| reportsDirectory | Pfad an dem der report in `HTML` Form abgelegt wird. Default ist `${project.build.directory}/pit-reports` |
| targetClasses | Klassen, die bei der Ausführung beachtet werden sollen. Default sind alle Klassen . |
| targetTests | Testklassen, die bei der Ausführung beachtet werden sollen. Default sind alle Testklassen. |
| timestampedReports | Wenn `true` wird für jeden Report eine neue Datei erzeugt mit Timestamp. Default ist `false`. |
#### Beispiel aus pom.xml
```XML
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.15.2</version>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
<configuration>
<targetClasses>Setup_Test.*</targetClasses>
<targetTests>Setup_TestTest.*</targetTests>
<outputFormats>
<param>HTML</param>
</outputFormats>
</configuration>
</plugin>
```
### Maven Commandline
Im Maven Commandline Befehl werden die Parameter in der Form `-DexcludedTestClasses=<ClassName>` mitübergeben. Dies ist ein Ausschnitt von möglichen Parametern:
| DavoidCallsTo | Liste von Packeten und Klassen die außerhalb des Mutations-Ziels liegen. Zeilen, die Aufrufe von Methoden dieser Klassen beinhalten werden nicht mutiert. Default `java.util.logging`, `org.apache.log4j`, `org.slf4j` und `org.apache.commons.logging` |
| DexcludedClasses | Liste von Klassen die von den Mutationen ausgenommen sind. |
| DexcludedTestClasses | Liste an Tests die beim ausführen einer `pitest:mutationCoverage` nicht beachtet werden. |
| DhistoryInputFile | Pfad zur History Datei. |
| DhistoryOutputFile | Pfad zur Datei in die die History geschrieben wird. |
| Dmutators | Liste von Mutations-Operatanten, die angewandt werden sollen. Mögliche Mutationen siehe hier: [Mutationen](https://pitest.org/quickstart/mutators/#RETURN_VALS) |
| DoutputFormats | Liste von Formaten in denen das Ergebnis ausgegeben werden soll. Default ist `HTML`. |
| DreportsDirectory | Pfad an dem der report in `HTML` Form abgelegt wird. Default ist `${project.build.directory}/pit-reports` |
| DtargetClasses | Klassen, die bei der Ausführung beachtet werden sollen. Default sind alle Klassen . |
| DtargetTests | Testklassen, die bei der Ausführung beachtet werden sollen. Default sind alle Testklassen. |
| DtimestampedReports | Wenn `true` wird für jeden Report eine neue Datei erzeugt mit Timestamp. Default ist `false`. |
Ohne Angabe von `reportDirectory` in `target.pit-reports` zu finden.
Unterteilung in `index.html` Datei, die einen Überblick und die Ergebniswerte des Testdurchlaufes beinhaltet und den `<ClassName>.java.html` Dateien die für die jeweilige Klasse die Details enthalten.
## Troubleshoot
- hast du alle Tests erneut ausgeführt mit Beispielsweise
```console
mvn test
```
- Hast du im Aufruf der Commandline auf das `D` vor den Parametern geachtet? (Siehe Beispiel oben)
- Hast du den Ordner des Historyoutput Files bereits erstellt schon?
## Andere hilfreiche Links
Dokumentation von [JUnit5](https://junit.org/junit5/docs/current/user-guide/index.html#writing-tests-annotations).