# language: de Funktionalität: Ergebnisse eines PIT-Laufs vollständig und ohne Nebenwirkungen auswerten Als CI-Nutzer möchte ich einen einzigen normalen PIT-Lauf verwenden, ohne dass das zusätzliche Reporting die Mutationstests verändert. @MC-014 Szenario: Mehrere Ergebnisblöcke derselben Klasse werden zusammengeführt Angenommen eine Methode hat die JaCoCo-Komplexität 10 Und ein Ergebnisblock enthält 4 ihrer KILLED-Ergebnisse Und ein späterer Block enthält weitere 4 KILLED- und 2 SURVIVED-Ergebnisse Wenn der PIT-Lauf abgeschlossen ist Dann beträgt ihr Nenner 10 Und ihr Mutation Score beträgt 0.8 Und ihr Mutation-CRAP beträgt 10.8 Und die Methodenauswertung wird nicht durch den letzten Block überschrieben @MC-015 Szenario: Die Reihenfolge der Ergebnisblöcke beeinflusst das Ergebnis nicht Angenommen zwei Auswertungen erhalten dieselben eindeutigen Endergebnisse Und die Ergebnisblöcke kommen in unterschiedlicher Reihenfolge an Wenn beide Auswertungen abgeschlossen werden Dann sind ihre fachlichen JSON-Inhalte identisch Und die Methoden erscheinen in derselben stabilen Sortierung @MC-016 Szenario: Wiederholte identische Ergebnisse werden nicht doppelt gezählt Angenommen dieselbe PIT-Mutantenidentität wird zweimal mit Endstatus KILLED geliefert Wenn die Ergebnisse aggregiert werden Dann erhöht diese Identität den KILLED-Zähler nur einmal @MC-017 Szenario: Widersprüchliche Endergebnisse sind ein Analyseproblem Angenommen dieselbe PIT-Mutantenidentität wird mit KILLED und mit SURVIVED geliefert Wenn die Auswertung abgeschlossen wird Dann wird der Widerspruch als "INCONCLUSIVE" dokumentiert Und nicht einfach das zuletzt eingegangene Ergebnis verwendet @MC-018 Szenario: Das ausgelieferte Plugin ergänzt einen normalen PIT-Lauf Angenommen das Plugin-JAR und seine Abhängigkeiten sind über den PIT-Tool-Classpath geladen Und MUTATION_CRAP sowie die normalen PIT-Ausgaben HTML und XML sind aktiviert Wenn das Java-Beispielprojekt seine PIT-Analyse ausführt Dann entstehen der eigene JSON- und Markdown-Report sowie die normalen PIT-Reports Und das Plugin hat keine zusätzliche PIT-Analyse gestartet Und das Plugin hat keinen zusätzlichen Coverage-Testlauf gestartet Und es hat die Mutantenauswahl nicht verändert @MC-032 Szenario: Der Fortschritt eines langen PIT-Laufs steht im Log Angenommen der vorige abgeschlossene Lauf hat 4368 Mutanten gemeldet Und ein neuer PIT-Lauf mit dem Plugin läuft seit 1 Stunde, 12 Minuten und 5 Sekunden Wenn PIT die Ergebnisse einer weiteren Klasse an das Plugin meldet Und die letzte Fortschrittszeile ist mindestens eine Minute alt Dann schreibt das Plugin die Zeile """ werkcrappit: 120 classes, 3104 of about 4368 mutants (71 %), 1:12:05 """ Und kommen weitere Ergebnisse innerhalb dieser Minute, schreibt es keine Zeile @MC-033 Szenario: Ohne abgeschlossenen vorigen Lauf zeigt der Fortschritt keine Gesamtzahl Angenommen es gibt keinen vorigen Report, nur den Marker eines nicht beendeten Laufs oder einen unlesbaren Wenn PIT die Ergebnisse einer Klasse an das Plugin meldet Dann schreibt das Plugin die Zeile """ werkcrappit: 120 classes, 3104 mutants, 1:12:05 """ Und ein unlesbarer voriger Report ist keine Warnung und bricht den Lauf nicht ab @MC-034 Szenario: Mehr Mutanten als im vorigen Lauf übersteigen die Schätzung nicht sichtbar Angenommen der vorige abgeschlossene Lauf hat 4368 Mutanten gemeldet Wenn das Plugin bereits 4400 Mutanten gesehen hat Dann schreibt das Plugin die Zeile """ werkcrappit: 250 classes, 4400 mutants (previous run: 4368), 2:20:41 """ @MC-035 Szenario: Am Ende des Laufs steht immer eine letzte Fortschrittszeile Angenommen ein PIT-Lauf mit dem Plugin hat 4368 Mutanten in 263 Klassen gemeldet Und die letzte Fortschrittszeile ist weniger als eine Minute alt Wenn PIT den Lauf beendet Dann schreibt das Plugin vor seiner Zusammenfassung die Zeile """ werkcrappit: 263 classes, 4368 mutants, 2:23:31 """