Mitsuba 3 ist ein forschungsorientiertes Rendering-System, das an der EPFL entwickelt wurde und leistungsstarke, plattformübergreifende Funktionen mit Python-Integration und differenzierbarem Rendering bietet. Dieses Dokument beschreibt seine Funktionen, Installation, Verwendung und Credits und hebt seine Vielseitigkeit für verschiedene Rendering-Aufgaben und Forschungsanwendungen hervor. Es ist eine Warnung bezüglich der aktuellen Instabilität des Hauptzweigs enthalten.
Pitest (auch bekannt als PIT) ist ein hochmodernes Mutationstestsystem für Java und die JVM.
Lesen Sie alles darüber unter https://pitest.org
Veröffentlichungen
1.17.2
1.17.1
1.17.0
1.16.3
1.16.2
1.16.1
1.16.0
Die API-Änderung in #1321 ist abwärtskompatibel, aber Plugins, die für 1.16.0 geschrieben wurden, funktionieren möglicherweise nicht mit früheren Versionen.
1.15.8
Die Filterung für #1310 ist standardmäßig deaktiviert. Um es zu aktivieren, fügen Sie die Filterzeichenfolge +funmodifiablecollection hinzu.
1309 fügt eine neue Maven-Eigenschaft parseSurefireArgLine hinzu. Dies ist standardmäßig auf „true“ gesetzt, aber das todsichere Argline-Parsing kann jetzt deaktiviert werden, indem es auf „false“ gesetzt wird.
1.15.7
1305 Abdeckung für Code im Paketnamen com.sun* nicht erfasst
Einem Filter zur Erfassung älterer JDK-Klassen im Paket „com.sun.*“ fehlte ein „, was dazu führte, dass keine Codeabdeckung registriert wurde, wenn sich der zu testende Code zufällig in einem Paket befand, das mit „sun“ begann.
1.15.6
Die dynamische Aufrufverfolgung für statischen Initialisierungscode wird wieder eingeführt, wenn zusätzliche Logik zur Unterdrückung der Mutationsfilterung für Code mit verzögerter Ausführung implementiert wurde.
1.15.5
1.15.4
Beachten Sie, dass Maven-Benutzer, die zuvor Argline-Parameter zwischen den jvmArgs und Argline-Parametern von Surefire und Pitest duplizieren mussten, dies möglicherweise benötigen
ihre Konfiguration beim Upgrade anzupassen. An Surefire übermittelte Einträge werden nun automatisch zu Pitest hinzugefügt.
1.15.3
1.15.2
1267 stellt sicher, dass zuvor verborgene Fehler, die das JUnit5-Plugin entdeckt hat, jetzt gemeldet werden. Dies ist eine abwärtskompatible API-Änderung. Es hat keine Auswirkungen, bis das JUnit5-Plugin aktualisiert wird, um die erweiterte API zu verwenden. Das aktualisierte Plugin ist nicht mit früheren Versionen von pitest kompatibel.
1.15.1
1.15.0
Als Ergebnis der bahnbrechenden API-Änderungen in #1251 wurde der arcmutierte Kotlin
Das Plugin sollte beim Upgrade auf pitest 1.15.0 auf 1.1.0 aktualisiert werden
1.14.4
1246 Priorisieren Sie den vorherigen Tötungstest bei der Verwendung von Verlaufsdateien
1.14.3
1.14.2
1.14.1
1.14.0
1212 Behebt weitgehend das Problem, die pitest-junit5-plugin-Version für Maven-Benutzer mit der junit5-Version synchron zu halten.
Bei Verwendung mit 1.2.0 des pitest-junit5-plugin wählt pitest nun automatisch eine Version von junit-platform-launcher aus
ist mit der Version von junit5 kompatibel, die vom zu testenden System verwendet wird.
Es bestehen weiterhin Probleme für Gradle-Benutzer, die möglicherweise immer noch auf API-Kompatibilitäten stoßen, wenn sie 1.2.0 des pitest-junit5-plugins verwenden. Diese können jedoch jetzt
kann durch manuelles Hinzufügen der richtigen Version von junit-platform-launcher zum Klassenpfad behoben werden.
Es besteht die Hoffnung, dass eine zukünftige Version des pitest-Gradle-Plugins einen Fix implementiert, der der pitest-maven-Lösung ähnelt.
1.13.2
1.13.1
1.13.0
1.12.0
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
Die auf der Konsole gemeldeten Zeilenabdeckungsstatistiken umfassten Codezeilen für das gesamte Projekt, selbst wenn Filter angewendet wurden. Das
führte zu dramatisch niedrigen Abdeckungswerten.
1.11.1
1.11.0
Beachten Sie, dass #1150 wichtige Schnittstellenänderungen enthält, die möglicherweise Aktualisierungen von Plugins von Drittanbietern erfordern.
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
Aufgrund von #1067 ist es wichtig, dass Mutationen für jede JVM nur für eine einzelne Klasse erstellt werden. Der MutationGrouper-Erweiterungspunkt wurde daher entfernt, da dadurch diese Einschränkung verletzt werden konnte. Alle Plugins von Drittanbietern, die diese Erweiterung verwenden, werden nicht mehr unterstützt.
Releases beinhalten auch mehrere Änderungen an internen Datenstrukturen. Alle Plugins von Drittanbietern, die auf diesen Strukturen basieren, müssen möglicherweise aktualisiert werden.
1116 bietet eine grobe Möglichkeit, automatisch generierten Code auszuschließen, der nicht von den anderen Filtern von pitest erfasst wird. Es ist standardmäßig deaktiviert, da es in manchen Situationen Code ausschließen kann, der für die Mutation gültig ist, kann aber durch Hinzufügen der Feature-Zeichenfolge +nofirstline aktiviert werden.
1.9.11
1.9.10
1.9.9
1.9.8
Fügt Unterstützung für Sprachen wie Kotlin hinzu, bei denen sich Quelldateien möglicherweise nicht in einer Verzeichnisstruktur befinden, die ihrem Paket entspricht. Beachten Sie, dass pitest nicht garantieren kann, die richtige Datei aufzulösen, wenn derselbe Dateiname an mehr als einem Ort vorkommt.
1.9.7
1.9.6
Beachten Sie, dass #1085 das Standardverhalten ändert, sodass Berichte nicht mehr standardmäßig in Verzeichnisse mit Zeitstempel geschrieben werden. Wenn Sie dieses Verhalten benötigen, müssen Sie es explizit aktivieren.
1.9.5
1078 ist eine bahnbrechende Schnittstellenänderung, die jedoch voraussichtlich in einer Zwischenversion enthalten ist
derzeit keine externen Kunden.
1.9.4
1.9.3
1054 Verschiebt die Unterstützung des automatischen Hinzufügens von headless=true (um zu verhindern, dass der Tastaturfokus auf Macs gestohlen wird) in eine Funktion.
Es ist standardmäßig aktiviert, kann jedoch durch Hinzufügen von -MACOS_FOCUS zur Funktionszeichenfolge deaktiviert werden.
1055 fügt die Option hinzu, die entsprechende Anzahl von Threads für die aktuelle Maschine zu erraten, indem +auto_threads hinzugefügt wird
die Features-Zeichenfolge. Diese Option ist standardmäßig deaktiviert und für die lokale Verwendung vorgesehen. Es wird nicht empfohlen
zur Verwendung auf einem CI-Server.
1.9.2
1.9.1
1.9.0
Aufgrund von #1040 müssen alle externen Pitest-Test-Plugins (z. B. JUnit 5, TestNG, Arcmutate Accelerator) vorhanden sein
beim Upgrade auf eine kompatible Version (1.0.0) aktualisiert.
Verlaufsdateien aus früheren Versionen sind inkompatibel und sollten beim Upgrade gelöscht werden.
1.8.1
1.8.0
1.7.6
Aufgrund von #1015 muss das TestNG-Plugin nun konfiguriert werden, wenn pitest in von TestNG getesteten Codebasen verwendet wird. In früheren Versionen war die Unterstützung automatisch enthalten.
1.7.5
Aufgrund von #993 muss jeder, der die forschungsorientierten RV-Operatoren nutzen möchte, das pitest-rv-Plugin konfigurieren, diese Mutatoren werden jedoch nicht für den allgemeinen Gebrauch empfohlen.
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
Aufgrund interner Änderungen sind einige Plugins von Drittanbietern möglicherweise nicht mit dieser Version kompatibel.
Vor dem Upgrade sollten alle Verlaufsdateien gelöscht werden.
Die Namen der Mutatoren zum Entfernen von Bedingungen haben sich aufgrund von #930 und geringfügig geändert
Bei expliziter Aktivierung muss möglicherweise in Build-Skripten aktualisiert werden.
1.6.9
1.6.8
1.6.7
Aufgrund von #900 ist der testPlugin-Parameter nun nicht mehr gültig, aber pitest wird ihn für diese Version weiterhin ohne Fehler akzeptieren. Pitest verwendet alle im Klassenpfad bereitgestellten Test-Engines und greift auf die integrierte JUnit4-Unterstützung zurück, wenn andere Test-Engines die Klasse nicht verarbeiten können.
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.5.2
1.5.1
1.5.0
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
Beachten Sie beim Upgrade, dass von früheren Versionen generierte Verlaufsdateien nicht mit 1.3.2 und höher kompatibel sind.
1.3.1
1.3.0
428 ändert das bestehende Verhalten des „excludedClasses“-Filters. Bisher wurden Klassen dadurch sowohl von der Mutation als auch von der Ausführung als Tests ausgeschlossen, was für einige Benutzer bei einem Upgrade möglicherweise Änderungen erforderlich machen würde.
Dadurch werden 429 TestNG-Tests nicht mehr automatisch erkannt – der neue testPlugin-Parameter muss explizit auf „testng“ gesetzt werden.
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
(Hinweis Nr. 347 erkennt javax.annotaion.Generated nicht, da es nur über die Quellspeicherung verfügt.)
1.2.0
Hinweis: Ab dieser Version bestimmt das Maven-Plugin automatisch, welche Klassen mutiert werden sollen, anstatt davon auszugehen, dass die Paketnamen mit der Gruppen-ID übereinstimmen.
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
Beachten Sie, dass diese Version ein bekanntes Problem enthält (Nr. 231). Bitte upgraden.
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
Bitte beachten Sie, dass alle gespeicherten Verlaufsdateien oder Sonarergebnisse durch diese Version ungültig werden.
1.0.0
0,33
0,32
Beachten Sie, dass sich in dieser Version die Einrichtung für Ant-basierte Projekte ändert. Weitere Informationen zur Verwendung finden Sie im Ant-Setup.
0,31
Diese Version ändert auch eine Reihe interner Implementierungsdetails, von denen einige für diejenigen, die Tools verwalten, von Interesse/wichtig sein können
Integration mit PIT.
Mutationen werden jetzt intern begrenzt, wie unter https://groups.google.com/forum/#!topic/pitusers/E0-3QZuMYjE beschrieben
Es wurde eine neue Klasse (org.pitest.mutationtest.tooling.EntryPoint) eingeführt, die einen Teil der Duplikate entfernt, die bei den verschiedenen Möglichkeiten zum Starten der Mutationsanalyse vorhanden waren.
0,30
0,29
0,28
Bekanntes Problem – Fix für #33 löst das Problem für Maven 2-Benutzer möglicherweise nicht.
Die Erkennung von Groovy-Code wurde mit Groovy 2 noch nicht getestet, was zu erheblichen Abweichungen führen kann
Bytecode zu früheren Versionen.
0,27
Benutzer, die ein Upgrade durchführen, müssen aufgrund der Entfernung des inScopeClasses-Parameters möglicherweise ihren Build ändern
0,26
Bekanntes Problem – Der Mutator der neuen Mitgliedsvariablen kann Fehler bei synchronisierten Fehlern verursachen. Der Mutator ist
jedoch standardmäßig deaktiviert und die generierten Fehler werden von PIT korrekt behandelt.
0,25
0,24
0,23
0,22
0,21
0,20
0,19
0,18
Probleme
Bitte konsultieren Sie unsere Issue-Management-Regeln, bevor Sie Issues erstellen oder bearbeiten.
Credits
Pitest ist hauptsächlich die Arbeit von mir, hat aber auch von den Beiträgen vieler anderer profitiert.
Bemerkenswerte Beiträge sind hier nicht sichtbar, da sie vor der Migration dieses Codes nach Github-Include erstellt wurden
Obwohl PIT keinen Code aus dem Jumble-Projekt (http://jumble.sourceforge.net/) enthält, wurde die Jumble-Codebasis bei der Entwicklung einiger Aspekte von PIT als Leitfaden verwendet.