Pitest (alias PIT) est un système de test de mutation de pointe pour Java et la JVM.
Lisez tout sur https://pitest.org
Sorties
1.17.2
- #1362 Exclure les lambdas dans les méthodes exclues par annotation (merci @see-quick)
1.17.1
- #1353 Avertir de la future suppression d'un objectif SCM
- #1355 Mettre à niveau ASM pour la prise en charge de Java 24
- #1359 Supprimer l'utilisation du générateur toString basé sur la réflexion
- #1361 Prise en charge initiale des tests inter-modules dans maven
1.17.0
- #1348 Étendre le point d'extension de la transformation
- #1349 Améliorer la stabilité du powermock
1.16.3
- #1345 Amélioration de la détection d'exécution retardée dans le code d'initialisation statique
- #1347 Ajout automatique des répertoires sources Kotlin standard pour les projets Maven
1.16.2
- #1340 Show couvrant les tests pour les mutants survivants dans un rapport HTML (merci @vivganes)
- #1342/#1343 Correction de la journalisation trompeuse des chemins d'historique (merci @vivganes)
- #1344 Mutation du code d'exécution retardée dans les énumérations et les singletons
1.16.1
- #1329 Empêcher les conflits de versions avec un objectif global lorsque les plugins utilisent Jackson
1.16.0
- #1311 - Inclure les collections non modifiables stockées directement dans les champs dans le filtre
+funmodifiablecollection
pour le code défensif - #1319 - Utiliser les variables d'environnement de la configuration Surefire
- #1322 - Ajoutez automatiquement -ea pour activer les assertions
- #1321 - Développer l'interface de BuildVerifier
Le changement d'API dans #1321 est rétrocompatible, mais les plugins écrits avec la version 1.16.0 peuvent ne pas fonctionner avec les versions antérieures.
1.15.8
- #1310 Filtrer les mutations vers Collections.unmodifiable*
- #1309 Remplacer les champs dans les argLines importées de la configuration Surefire
- #1308 Bump des versions de Maven VCS
Le filtrage pour #1310 est désactivé par défaut. Pour l'activer, ajoutez la chaîne de filtre +funmodifiablecollection
.
1309 ajoute une nouvelle propriété maven parseSurefireArgLine
. Ceci est défini sur true par défaut, mais l'analyse infaillible des lignes d'argline peut désormais être désactivée en la définissant sur false.
1.15.7
#1305 Couverture non enregistrée pour le code dans le nom du package com.sun*
Un filtre destiné à récupérer les anciennes classes JDK dans le package "com.sun.*" manquait un '
, ce qui entraînait qu'aucune couverture de code n'était enregistrée si le code testé se trouvait dans un package commençant par "sun".
1.15.6
- #1295 supprimer temporairement le suivi dynamique des appels
Le suivi des appels dynamiques pour le code d’initialisation statique sera réintroduit lorsqu’une logique supplémentaire pour supprimer le filtrage des mutations pour le code d’exécution retardée aura été implémentée.
1.15.5
- #1292 Les propriétés des lignes Arg extraites de la configuration infaillible n'ont pas été remplacées
1.15.4
- #1288 - Nouveau point d'extension pour permettre des formats d'exportation de couverture personnalisés
- #1289 - Analyser la configuration argline à partir de la configuration infaillible
- #1274 Suivre les appels dynamiques d'invocation lors de la détection des méthodes d'initialisation statique uniquement
Notez que les utilisateurs Maven qui ont déjà eu besoin de dupliquer les paramètres argline entre les paramètres jvmArgs
et argline
de Surefire et Pitest devront peut-être ajuster leur configuration lors de la mise à niveau. Les entrées fournies à Surefire seront désormais automatiquement ajoutées à Pitest.
1.15.3
- #1271 - Vérifiez l'état du fil de discussion avant de marquer le serviteur comme mort
1.15.2
- #1268 - Filtrer les contrôles non nuls de Lombok
- #1267 - Développez l'API de test pour permettre le signalement des erreurs lors de l'analyse de test
#1267 garantira que les erreurs précédemment cachées rencontrées par le plugin JUnit5 seront désormais signalées. Il s’agit d’un changement d’API rétrocompatible. Cela n'aura aucun effet jusqu'à ce que le plugin JUnit5 soit mis à jour pour utiliser l'API étendue. Le plugin mis à jour ne sera pas compatible avec les versions antérieures de pitest.
1.15.1
- #1260 Mise à niveau vers ASM 9.6 pour la prise en charge de Java 22
- #1261 Ne pas faire d'erreur sur les fichiers d'historique les plus pitests < 1.15.0
1.15.0
- #1253 supprime les statistiques de couverture lorsque la réduction des tests d'historique est activée
- #1252 ajoute un paramètre de fonctionnalités supplémentaires pour maven pour permettre l'ajout de fonctionnalités sur la ligne de commande sans écraser la liste existante
- #1251 étendre les interfaces de l'historique (changement avec rupture)
- #1250 : amélioration du message d'erreur en cas d'échec de l'analyse des chaînes de fonctionnalités
- Ajustement des performances #1248 - identification de la classe de test de retard
- #1247 Suppression du code hérité
En raison des changements importants de l'API dans #1251, le plugin arcmutate kotlin devrait être mis à niveau vers 1.1.0 lors de la mise à niveau vers pitest 1.15.0.
1.14.4
#1246 Prioriser le test de mise à mort précédent lors de l'utilisation de fichiers historiques
1.14.3
- #1239 Prise en charge des groupes exclus séparés par des virgules (merci @johnathana)
- #1243 Ordonner explicitement le chemin de classe dans le fichier historique pour garantir la cohérence entre les exécutions
- #1245 Éviter la journalisation confuse des exécutions d'analyses incrémentielles factices
1.14.2
- #1221 – Calcul de pourcentage unifié (merci @Vampire)
- #1218 – Sécurité des threads pour la collecte des résultats lorsque les tests sont exécutés en parallèle (merci @Vampire)
- #1225 - Empêcher les erreurs lorsque des fichiers non archivés sont inclus dans le chemin de classe
- #1229 - Muter les itérables en liste vide
- #1227/1232 - Correction de l'interface MethodMutator pour qu'elle dépende des types abstraits
1.14.1
- #1215 Appliquer des réécritures de couverture lors de l'agrégation de rapports
- #1219 Assurez-vous d'essayer en premier avec le filtrage des ressources appliqué (merci @Vampire)
1.14.0
- #1213 Filtrer la division équivalente par -1 des mutants mathématiques
- #1212 Ajout automatique du lanceur de plateforme Junit
#1212 Résout en grande partie le problème de la synchronisation de la version pitest-junit5-plugin avec la version junit5 pour les utilisateurs maven.
Lorsqu'il est utilisé avec la version 1.2.0 du plugin pitest-junit5, pitest sélectionnera désormais automatiquement une version de junit-platform-launcher compatible avec la version de junit5 utilisée par le système testé.
Des problèmes subsistent pour les utilisateurs diplômés qui peuvent toujours rencontrer des compatibilités API lors de l'utilisation de la version 1.2.0 du plugin pitest-junit5. Ceux-ci peuvent cependant maintenant être résolus en ajoutant manuellement la version correcte de junit-platform-launcher au chemin de classe.
On espère qu'une future version du plugin pitest gradle implémentera un correctif similaire à la solution pitest-maven.
1.13.2
- #638 Assurez-vous que le % indique 100 lorsque tous les mutants sont tués (merci @Vampire)
- #1197 Afficher les informations de démarrage lors de la connexion définie sur VERBOSE_NO_SPINNER (merci @Vampire)
- #1198 Améliorations de la journalisation (merci @Vampire)
- #1200 Avertir si l'exécution de tests parallèles est activée pendant la collecte de couverture (merci @Vampire)
- #1199 Passez à System.nanoTime pour les horaires de test (merci @Vampire)
- #1207 Prise en charge de la suppression des annotations au niveau de la classe
1.13.1
- #1194 Assistance
**.
motif en globes (merci @Pfoerd)
1.13.0
- #1188 Autoriser les mutants à produire plusieurs mutations distinctes
- #1190 Fournir un priorisateur de test aux intercepteurs
- #1191 Activer la mutation des annotations des méthodes et des champs
1.12.0
- #1186 Nouveaux points d'extension
1.11.7
- #1178 Les virgules dans la suppression du nom du test interrompent l'exportation CSV (merci @Bonajo)
- #1177 Appliquer les fonctionnalités dans un ordre cohérent
- #1176 Mise à niveau vers ASM 9.5
1.11.6
- #1171 Empêcher la double instanciation des fonctionnalités
- #1170 Mettre à jour les liens vers https (merci @romani)
1.11.5
- #1167 Correction des mauvaises performances d'analyse statique pour les grandes méthodes
- #1166 Mettre à jour le lien Web Pitest vers https (merci @romani)
1.11.4
- #1161 Empêcher les clinites en double en présence de clinites synthétiques
- #1162 Ajout automatique des répertoires sources Kotlin à Maven lorsqu'ils sont présents
1.11.3
- #1159 Inclure uniquement les classes mutées dans les statistiques de couverture de ligne
1.11.2
- #1157 Signaler uniquement les lignes de code cible
Les statistiques de couverture de ligne signalées sur la console incluaient des lignes de code pour l'ensemble du projet, même lorsque des filtres étaient appliqués. Cela a abouti à des scores de couverture extrêmement faibles.
1.11.1
- #1156 Empêcher que les lignes synthétiques soient comptées dans la couverture
1.11.0
- #1138 Ne pas muter les transitions redondantes vers les cas de commutation par défaut
- #1150 Nouveaux points d'extension
Notez que le numéro 1150 inclut des modifications majeures de l'interface qui peuvent nécessiter des mises à jour de plugins tiers.
1.10.4
- #1134 Ajouter le paramètre
excludedRunners
à l'interface de ligne de commande et à Ant - #1131 Prise en charge de la syntaxe d'évaluation tardive et infaillible des propriétés pour les arglines
1.10.3
- #1128 Correction d'un bug - les lignes avec des entrées de débogage répétées sont comptées deux fois
1.10.2
- #1125 Correction d'un bug - les méthodes lambda synthétiques ne sont pas traitées comme des lignes de code
1.10.1
- #1124 Correction d'un bug introduit dans la version 1.10.0 où les méthodes de pont étaient traitées comme des lignes de code valides
1.10.0
- #1067 Amélioration du support Quarkus et Roboélectrique
- #1116 Option pour exclure les lignes 0 et 1 de toutes les classes
- #1118 Détecter les plugins manquants
En raison du numéro 1067, il est important que les mutations ne soient créées que pour une seule classe pour chaque JVM. Le point d'extension MutationGrouper
a donc été supprimé car il permettait de violer cette contrainte. Les plugins tiers utilisant cette extension ne sont plus pris en charge.
Les versions incluent également plusieurs modifications apportées aux structures de données internes. Tous les plugins tiers s'appuyant sur ces structures devront peut-être être mis à jour.
1116 fournit un moyen grossier d'exclure le code généré automatiquement non capté par les autres filtres de Pitest. Il est désactivé par défaut car il peut exclure le code valide pour la mutation dans certaines situations, mais peut être activé en ajoutant la chaîne de fonctionnalité +nofirstline
.
1.9.11
- #1105 L'agrégateur résout le mauvais fichier pour les fichiers Kotlin hors package portant le même nom
- #1111 Correction d'une faute de frappe dans le journal (merci @wangbo15)
1.9.10
- #1106 Ne remplacez pas Map.of par Collections.emptyMap
- #1109 Détendez la vérification du débogage du fichier source
1.9.9
- #1098 Inclure les valeurs de cas dans les descriptions de mutations switch
1.9.8
- #1094 Rechercher des fichiers sources en dehors des répertoires de packages
Ajoute la prise en charge de langages tels que Kotlin où les fichiers sources peuvent ne pas se trouver dans une structure de répertoires correspondant à leur package. Notez que si le même nom de fichier apparaît à plusieurs emplacements, pitest ne peut pas garantir la résolution du bon fichier.
1.9.7
- #1091 - Noms de classes d'échappement dans le XML de couverture
1.9.6
- #1092 - Mise à niveau vers ASM 9.4
- #1091 - Échapper correctement au XML de couverture
- #1088 - Supprimer le paramètre de distance de dépendance inutilisé
- #1085 - Ne pas produire de rapports d'horodatage par défaut
Notez que #1085 modifie le comportement par défaut afin que les rapports ne soient plus écrits par défaut dans des répertoires horodatés. Si vous avez besoin de ce comportement, vous devrez l'activer explicitement.
1.9.5
- #1078 - Interface Modifier la mise à jour de la configuration
- #1079 - Évitez la journalisation JBoss par défaut
1078 est un changement radical d'interface, mais est inclus dans une version intermédiaire car il semble qu'il n'y ait actuellement aucun client externe.
1.9.4
- #1063 - Améliorer le filtrage des mutants de retour équivalents
- #1064 - Supprimer les anciens mutateurs de valeur de retour et l'ancien groupe de valeurs par défaut
- #1066 - Étendre le filtrage de l'initialiseur statique
- #1070 - Supprimer l'agent jacoco s'il est présent sur argline
1.9.3
- #1052 - Prise en charge de la propriété maven argLine et des argLines à chaîne unique
- #1054 - Permet de contrôler l'ajout automatique de -Djava.awt.headless=true
- #1055 - Option pour définir automatiquement le nombre de threads
- #1056 - Définir le délai d'attente pour la communication par socket
- #1058 - Définir les valeurs par défaut pour l'encodage d'entrée et de sortie pour l'API programmatique
1054 Déplace la prise en charge de l'ajout automatique de headless=true (pour empêcher le vol du focus clavier sur les Mac) dans une fonctionnalité. Il est activé par défaut, mais peut être désactivé en ajoutant -MACOS_FOCUS
à la chaîne de fonctionnalités.
1055 ajoute la possibilité de deviner le nombre approprié de threads pour la machine actuelle en ajoutant +auto_threads
à la chaîne de fonctionnalités. Cette option est désactivée par défaut et conçue pour une utilisation locale. Son utilisation n'est pas recommandée sur un serveur CI.
1.9.2
- #1050 – Vérifiez que les serviteurs sont vivants pour éviter les blocages du processus
1.9.1
- #1047 Atténuation des blocages intermittents du processus
1.9.0
- #1035 - Améliorer la consommation de mémoire de couverture
- #1038 – Prise en charge du plugin Maven Site 3.12.0+ (merci les IO)
- #1040 - Calcul plus rapide de la couverture JUnit 5
- #1040 - Supprimer le paramètre
dependencyDistance
En conséquence du #1040, tous les plugins de test pitest externes (par exemple JUnit 5, TestNG, arcmutate accelerator) doivent être mis à jour vers une version compatible (1.0.0) lors de la mise à niveau.
Les fichiers d'historique des versions antérieures sont incompatibles et doivent être supprimés lors de la mise à niveau.
Anciennes versions
1.8.1
- #637 - Prise en charge de différents encodages d'entrée et de sortie (merci @qxo)
- #705 - Autoriser + dans les chemins de fichiers (merci @ali-ghanbari)
- #903 - Filtrer les mutants dans les constructeurs singleton
- #1025 - Retravailler le filtrage des commutateurs de chaînes
- #1027 - Retravailler le filtrage des assertions et supprimer le mécanisme de filtre existant
- #1030 - Filtrer les mutations indésirables du commutateur d'énumération
1.8.0
- #1017 - Améliorer la détection de boucle infinie statique
- #1020 – Retravaillez la bibliothèque de correspondance NFA et essayez avec le filtrage des ressources
- #1022 - Test de support quarkus
1.7.6
- #1008 Mettre à niveau ASM pour la prise en charge initiale de Java 19
- #1016 Échec proprement lorsqu'aucun plugin de test fonctionnel n'est fourni
- #1015 Déplacer la prise en charge de TestNG hors de la base de code principale
Suite au #1015, le plugin TestNG doit désormais être configuré lors de l'utilisation de pitest dans les bases de code testées par TestNG. Dans les versions antérieures, la prise en charge était incluse automatiquement.
1.7.5
- #625 / #983 Correction de l'agrégation des rapports (merci @therealryan et @aurelien-baudet)
- #985 Gérer les exclusions infaillibles vides
- #993 Déplacer les mutateurs rv vers un plugin externe
- #994 / #995 Le filtre équivalent en boîte renvoie les vrais mutants dans les blocs try
- #968 / 997 Améliorer le filtrage des mutants de retour vides équivalents
- #999 / 1003 Nouveau paramètre pour localiser la racine des projets multi-modules
Suite au #993, toute personne souhaitant utiliser les opérateurs RV orientés recherche doit configurer le plugin pitest-rv, cependant ces mutateurs ne sont pas recommandés pour une utilisation générale.
1.7.4
- #965 - BigDecimal Mutator (merci @MarcinNowak-codes)
- #750 - Prise en charge de -DskipTests depuis la ligne de commande (merci @marwin1991)
1.7.3
- #952 La carte de mutation revient à
emptyMap
au lieu de null - #954 Autoriser l'exclusion des mutateurs
- #957 Filtrer les mutations équivalentes à Boolean.TRUE et Boolean.FALSE
1.7.2
- #943 Modifier les mutateurs par défaut - remplacer la négation conditionnelle par la suppression conditionnelle
- #946 Le flux de mutation revient au flux vide au lieu de null
1.7.1
- #932 Améliorer les descriptions des mutations switch
- #934 Configurer la verbosité de la sortie de la console
- #940 Masquer les fonctionnalités internes
- #942 Correctif pour les opérateurs de mutation tiers non ajoutés au chemin de classe du client
- #939 Améliorer la mise en cache de la récupération du bytecode
1.7.0
- #923 Modifications de l'interface interne
- #930 Mutateurs enfichables
En raison de changements internes, certains plugins tiers peuvent être incompatibles avec cette version.
Tous les fichiers historiques doivent être supprimés avant la mise à niveau.
Les noms des mutateurs de suppression conditionnelle ont légèrement changé à la suite du #930 et peuvent devoir être mis à jour dans les scripts de construction s'ils sont explicitement activés.
1.6.9
- #922 Filtrer les mutants stream.empty équivalents dans les appels flatMap
- #921 Ordre de garantie des opérateurs de mutation
- #919 Filtrer les mutations indésirables dans les enregistrements Java
1.6.8
- #917 - Ajout d'une méthode pour récupérer tous les identifiants de mutateurs pour pitclipse et d'autres outils
- #913 - Faire passer ASM à 9.2
1.6.7
- #897 Correction de la description lors du remplacement d'une valeur par un ensemble vide
- #900 Prise en charge de plusieurs moteurs de test
- #822 Correction de la régression de NPE lors de la lecture du manifeste du chemin de classe
- #798 Correction de la régression du support des paramètres jvmArgs via maven
- #797 Correction de la régression de la couverture des lignes sur console
Suite au #900, le paramètre testPlugin
est désormais obsolète, mais pitest continuera à l'accepter sans erreur pour cette version. Pitest utilisera tous les moteurs de test fournis sur le chemin de classe, en revenant au support JUnit4 intégré lorsque d'autres moteurs de test ne peuvent pas gérer la classe.
1.6.6
- #891 - Corriger les performances de l'historique
- #889 - Ne pas analyser le chemin de classe pour l'historique lorsque l'option n'est pas fournie
- #887 - Correction des CSS pour les délais d'attente et les erreurs de mémoire
- #888 - Supprimer le nombre maximum de mutants défunts par paramètre de classe
- #890 - Supprimer le paramètre d'initialisation statique de mutation défunt
1.6.5
- #882 Évitez d'exécuter des tests lorsqu'aucun mutant n'est possible
1.6.4
- #862 Mettre à jour ASM pour Java 16
1.6.3
- #853 Correction de la vérification des fonctionnalités insensibles à la casse
- #855 Rendre les données de couverture disponibles aux intercepteurs
- #857 Transmettre les données stderr/out par ligne (merci @kgeilmann)
- #858 Correction du test qui n'échoue pas lorsque maxSurviving est 0 (merci @alexkoltz)
- #860 Corriger les mutations indésirables en essayant avec les ressources dans Java 11+
1.6.2
- #770 et #746 Correction du NPE pendant la phase de couverture (merci @LaurentTho3)
- #849 Rendre les noms de fonctionnalités insensibles à la casse
- #844 Étendre le système de fonctionnalités pour travailler avec les auditeurs
- #842 Rendre les options de rapport disponibles aux auditeurs
1.6.1
- Automatiser la publication vers Maven Central
- #774 Statistique de résistance du test (merci @alex859)
- #798 Activer la transmission des arguments jvm depuis la ligne de commande (merci @yfrolov)
- #797 Ajouter une couverture de ligne à la console (merci @qxo)
- #822 Atténuer les NPE en cas de dépendance accidentelle (merci @szpak)
1.5.2
- #749 Prise en charge ANT pour l'option fullMutationMatrix (merci @ayaankazerouni)
- #752, #755, #757 Modifications de version et améliorations du code hérité (merci @AlexElin)
- #758 Correctement possible pour les packages de test (merci @nicerloop)
- #765 Correction de l'analyse incrémentielle pour TestNG (merci @StefanPenndorf)
1.5.1
- #737 Ajouter l'indicateur skipFailingTests à l'outil de ligne de commande (merci @szpak)
- #739 Correction d'une faute de frappe dans le message d'erreur (merci @vmellgre)
- #745 Améliorer le message d'erreur lorsque Junit n'est pas sur le chemin de classe (merci @szpak)
- #748 Passer asm à 8.0 pour le support de Java 14
1.5.0
- #556 - Ne pas muter les constructeurs d'énumérations
- #726 - Assurez-vous que la couverture de l'initialiseur statique est enregistrée
- #734/#735/#736 - Remplacer les interfaces existantes par l'API Java (merci @AlexElin)
1.4.11
- #683 - Filtrez les ressources d'essai avant de filtrer le code intégré (merci @Vampire)
- #686 - N'imprimez pas deux fois le nom de la classe pour les unités de test non séparables (merci @Vampire)
- #672 - Ne pas inclure le répertoire actuel dans le chemin de classe des minions (merci @Vampire)
- #692 - Ajoutez property='skipPitest' pour ignorer le plugin maven d'attribut inn (merci @cjgwhite)
- #697 - Compatibilité TestNG 7.0.0 (merci @kris-scheibe)
- #666 - UOI4 signale un nom de champ muté (merci @LaurentTho3)
- #716 - Passer asm à 7.3.1 (requis pour Java 14)
- #710 - Utiliser le nouveau mutateur défini par défaut
1.4.10
- #534 Des blocs plus petits pour un ciblage de test plus précis (merci @jon-bell)
- #664 Correction de la clé de carte A0D2 (merci @Vampire)
- #656 Caractères d'échappement dans les méthodes d'initialisation pour le rapport HTML (merci @Vampire)
- #404 Filtrer les mutations indésirables vers les appels Objects.requireNonNull générés par le compilateur
1.4.9
- #613 / #623 - Correction des problèmes de powermock sur (merci @jon-bell)
- #614 - Message d'erreur amélioré lorsqu'il n'y a pas de plugin de test (merci @szpak)
- #620 - Prise en charge des processeurs d'annotation tels que Micronaut qui ne définissent pas de nom de fichier de débogage
1.4.8
- #597 Correction d'un bug de couverture lorsqu'un grand nombre de classes (merci @jon-bell)
- #601 Évitez de voler le focus du clavier sur les macos (merci @maxgabut)
1.4.7
- #545 - Calcul de couverture plus rapide (merci @jon-bell)
1.4.6
- #580 - mise à niveau vers ASM 7.1
- #573 - Prise en charge Ant pour
testPlugin
et failWhenNoMutations
(merci @mduggan) - #555 - Autoriser les éléments vides dans la configuration maven (merci @maxgabut)
1.4.5
- #557 - Problèmes exécutés sur Java 8
1.4.4
- #518 - Mutateur expérimental BigInteger (merci @ripdajacker)
- #513 – Trier les mutateurs dans le rapport HTML (merci @ThLeu)
- #553 - Mutateurs classiques de la littérature (merci @LaurentTho3)
- #528 - Ajout de l'option skipFailingTests du plugin maven (merci @nicerloop)
1.4.3
- #510 – Calculer la matrice de test de mutation (merci @nrainer)
- #519 - Prise en charge de Java 11
1.4.2
- #500 - Prise en charge des grands chemins de classe avec la nouvelle option
useClasspathJar
(merci @jqhan)
1.4.1
- #446 - Ignorer les répertoires vides lors de l'agrégation du rapport (merci @maxgabut)
- #457 - Correction du répertoire de base dans les projets multi-modules (merci @sarahBuisson et @giggluigg)
- #471 – Prise en charge de base de Java 11
- #477 - Octet nul en XML (merci @maxgabut)
- #480 - Autoriser l'agrégation des rapports horodatés (merci @maxgabut)
- #495 - Déplacer le résumé à la fin de la sortie de la console (merci @pedrorijo91)
- #499 - Correction des mutants équivalents dans les nouveaux mutateurs de valeur de retour
1.4.0
- #445 - Augmenter la version Java minimale prise en charge à 8
- Passer à ASM 6.1.1
- #448 Rapport agrégé basé sur le module (merci @sarahBuisson)
- #462 Échapper aux noms de tests dans la couverture XML (merci @maxgabut)
1.3.2
- #433 - Rapports agrégés via maven (merci @rchargel)
- #438 - Filtrer les tests au niveau de la méthode (merci @ftrautsch)
- #439 - Le mutateur de retour des primitives ne gère pas les octets
- #380 - Supprimez la dépendance à xstream pour une prise en charge améliorée de Java 9
- #414 - Remplacer le magasin d'historique xstream (merci @kiftio)
Notez lors de la mise à niveau que les fichiers d'historique générés par les versions précédentes ne sont pas compatibles avec les versions 1.3.2 et supérieures.
1.3.1
- #434 - Avertissement de sécurité XStream
1.3.0
- #196 - Augmenter la version minimale de Java à 7
- #425 – Élargir la détection pour chaque
- #428 - Ajouter le
excludedTestClasses
- #379 - Supprimer la prise en charge de la mutation des initialiseurs statiques
- #432 - Ajouter la fonctionnalité du plugin d'exportation dans Pitest
- #427 – Meilleurs mutateurs de valeurs de retour
- #429 - Simplifier l'API de test
428 modifie le comportement existant du filtre exclusClasses. Auparavant, cela excluait les classes d'être mutées et exécutées en tant que tests, ce qui pouvait nécessiter des modifications pour certaines personnes lors de la mise à niveau.
En conséquence de 429 tests TestNG ne seront plus automatiquement détectés - le nouveau paramètre testPlugin
doit être explicitement défini sur "testng".
1.2.5
- #407 - L'objectif SCM ne peut pas être exécuté depuis le module (merci @sbuisson)
- #256 – Le style en ligne viole la politique de sécurité du contenu (merci @kiftio)
- #403 - Pas de CSS dans le rapport html consulté par jenkins (merci @kiftio)
- #409 – Mutation en fonction des changements dans les branches (merci @sbuisson)
- #418 - Évitez les incréments de boucle
- #424 – A éviter pour chaque code
- #389 - Élargir la correspondance des contrôles nuls implicites
1.2.4
- #397 - Signaler les raisons pour lesquelles les modules Maven ont été ignorés
- #389 - Filtrer les vérifications nulles getClass indésirables dans les lambdas
- #400 – Mise à jour vers ASM 6.0
1.2.3
- Mise à jour vers ASM 6 pour la prise en charge de Java 9
- #388 - Marquer le plugin Maven comme threadsafe
- #362 - Supprimer le mutant équivalent commun dans les méthodes égales
1.2.2
- #367 - L'analyse statique ne trouve pas les classes principales dans certains projets
1.2.1
- #347 - Évitez le code généré automatiquement (par exemple par Lombok) annoté avec @Generated
- #285 - Évitez les conditions générées par le compilateur dans la chaîne d'activation. (merci @Kwaq)
- #218 - Nouveau mutateur de « récepteur nu » / chaîne de méthodes. (merci @UrsMetz)
- #354/#356 - Nouveau point d'extension et modifications pour réduire le coût de l'accès aléatoire au bytecode pour l'analyse statique
- #353 - Détection améliorée du code d'initialisation statique
- #364 - Filtrer les boucles infinies via l'analyse statique
- #365 – Système de configuration des plugins
(La note n° 347 ne détectera pas javax.annotaion.Generated
car elle n'a qu'une rétention de source.)
1.2.0
- #318 - Séparez le code du processus principal du chemin de classe du client de partage de code
- #295 - Ignorer les tests TestNG abstraits
- #215 - Sélection automatique des classes cibles pour maven
- #314 - N'échouez pas pour les modules maven sans tests ni code
- #306 - N'échouez pas lorsque seules les interfaces sont dans l'ensemble de modifications
- #325 - Classe anonyme dans le test Spock provoquant une erreur
- #334 - Compatibilité avec les versions récentes de TestNG
- #335 – Couverture incorrecte avec powermock
Remarque : à partir de cette version, le plugin maven déterminera automatiquement les classes à muter au lieu de supposer que les noms des packages correspondent à l'identifiant du groupe.
1.1.11
- #269 - Impossible de casser la construction sur 1 mutant
- #271 - Inclure le descripteur de méthode dans la couverture de ligne
- #170 - Exclusion par le coureur JUnit
- #291 - Gérer les exclusions vides
- #287 - Vérifiez la hiérarchie des classes pour les annotations
- #289 - Option pour fournir le chemin de classe à partir du fichier
1.1.10
- #260 – Prise en charge initiale de la mutation du code Kotlin
- #264 - Prise en charge de yatspec runner (merci @theangrydev)
- Briser la construction lorsque plus de mutants
maxSurviving
survivent
1.1.9
- #132 - Autoriser l'analyse des seuls fichiers touchés lors du dernier commit (merci Tomasz Luch)
1.1.8
- #239 - Fournir un raccourci pour définir les fichiers d'historique via maven
- #240 - Prise en charge des expressions rationnelles (merci sebi-hgdata)
- #243 – Utiliser des ports éphémères pour communiquer avec les serviteurs
1.1.7
- #196 - Augmenter la version minimale de Java à 1.6
- #231 - Le processus se bloque
1.1.6
- #10 - Ajouter un objectif de rapport Maven (merci jasonmfehr)
- #184 - Supprimer la fonctionnalité de fichier de projet non documenté
- #219 - Amélioration des performances pour la génération de rapports (merci tobiasbaum)
- #190 – Autoriser les propriétés personnalisées pour les plugins
Notez que cette version contient un problème connu (#231). Veuillez mettre à niveau.
1.1.5
- Correctif pour #148 - Stackoverflow avec les fournisseurs de données TestNG lors de l'utilisation de JMockit
- Correctif pour #56 - Ne pas signaler les incompatibilités Junit
- Correctif pour #174 - linecoverage.xml invalide avec des initialiseurs statiques
- Correctif pour #183 - Impossible d'exécuter les tests GWTMockito
- Correctif pour #179 – Cassé
includeLaunchClasspath=false
sous Windows - #173 - Lire les exclusions et les groupes de la configuration Maven Surefire
1.1.4
- #157 - Prise en charge du drapeau maven -DskipTests (merci lkwg82)
- Correctif pour #163 - Ne devrait pas inclure l'arborescence de test dans le seuil de couverture
- #166 - Autoriser les exclusions de chemin de classe pour le plugin maven (merci TomRK1089)
- #155 - Restaurer la compatibilité Java 5
- Correctif pour #148 - Problème avec JMockit + TestNG (merci estekhin et KyleRogers)
1.1.3
- Correctif pour #158 – Tests incorrectement exclus des mutants
- Correctif pour #153 - Plugin SCM cassé pour maven 2
- Correctif pour #152 - Ne fonctionne pas avec IBM jdk
1.1.2
- Correctif pour #150 - couverture de ligne sous-rapportée
1.1.1
- Couverture basée sur des blocs (correctifs 79/131)
- Fin du support pour l'exécution sur Java 5 (le bytecode Java 5 est toujours pris en charge)
- Ignorer l'indicateur pour les modules maven (#106)
- Arrêtez de déclarer TestNG comme dépendance
- Nouveau mutateur de propagation de paramètres (merci UrsMetz)
1.1.0
- Schéma de changement pour l'identification des mutants (voir #125)
- Prise en charge d'API de test alternatives via le système de plugins
- Signaler une erreur lorsque le nom du mutateur fourni ne correspond pas (merci artspb)
- Signaler les codes de sortie du processus enfant de couverture (merci KyleRogers)
- Traitez les tests JUnit avec l'annotation ClassRule comme une seule unité (merci devmop)
Veuillez noter que tous les fichiers d'historique stockés ou les résultats du sonar sont invalidés par cette version.
1.0.0
- Schéma de numérotation des versions du commutateur
- Mise à niveau vers ASM 5.0.2
- Correctif pour #114 - ne parvient pas à s'exécuter pour Java 8 lorsque l'indicateur -parameters est défini
- #99 Prise en charge de la propriété supplementaireClasspathElements dans le plugin maven (merci artspb)
- #98 Ne pas muter Java 7, essayez avec les ressources (merci @artspb)
- #109 suppression étendue du mutateur conditionnel (merci @vrthra)
0,33
- Passer à Github
- Mise à niveau d'ASM pour supporter le bytecode Java 8 (grâce à "iirekm")
- Prise en charge partielle des catégories JUnit (merci à "chrisr")
- Nouveau Mutateur de suppression d'incréments (merci à Rahul Gopinath)
- Améliorations mineures de la journalisation (merci à Kyle Rogers alias Stephan Penndorf)
- Correctif pour #92 - support Maven 2 cassé
- Correctif pour #75 – tests incorrectement ignorés dans les classes avec @Ignore et @BeforeClass / @AfterClass
0,32
- restaure la compatibilité Java 7
- nouveau mutateur de suppression des conditions
- prise en charge de la mutation des initialiseurs statiques avec TestNG
- isoler correctement les chemins de classe lors de l'exécution via Ant
- la pause s'appuie sur le seuil de couverture
- permettre à JVM d'être spécifié
- prendre en charge les stratégies de sélection de tests définies par l'utilisateur
- prend en charge le format de sortie défini par l'utilisateur
- prise en charge de la priorisation des tests définie par l'utilisateur
- correctif pour un problème bloquant l'utilisation avec Robolectric
Notez que la configuration des projets basés sur Ant change dans cette version. Voir la configuration des fourmis pour plus de détails sur l'utilisation.
0,31
- Compatibilité Maven 2 restaurée
- Calcul de couverture de ligne beaucoup plus rapide
- Correctif pour #78 - Erreur lorsque les magasins de test PowerMockito se moquent en tant que membre
Cette version modifie également un certain nombre de détails d'implémentation internes, dont certains peuvent être intéressants/importants pour ceux qui gèrent les outils qui s'intègrent à PIT.
Les mutations sont désormais limitées en interne, comme décrit dans https://groups.google.com/forum/#!topic/pitusers/E0-3QZuMYjE.
Une nouvelle classe (org.pitest.mutationtest.tooling.EntryPoint) a été introduite pour supprimer certaines duplications qui existaient dans les différentes manières de lancer l'analyse de mutation.
0,30
- Prise en charge des tests Spock paramétrés
- Prise en charge des tests JUnitParams
- Correctif pour #73 - Les tests paramétrés JUnit appelant mutee lors de l'installation échouent pendant la phase de mutation
- Correction du n°63 : la tâche fourmi échoue lorsque des options vides sont fournies.
- Possibilité de remplacer les options maven à partir de la ligne de commande
- Possibilité d'échouer une construction si elle n'atteint pas un score de mutation donné
- Amélioration des performances lorsque les tests utilisent les annotations @BeforeClass ou @AfterClass
- Planification légèrement améliorée sur plusieurs threads
- Prise en charge multi-projets Maven améliorée
- Intégration avec le contrôle de code source pour les utilisateurs Maven
0,29
- Analyse incrémentale (--historyInputLocation et --historyOutputLocation)
- Détection de code intégré activée par défaut
- Journalisation plus silencieuse par défaut
- Prise en charge améliorée de Java 7
- Mise à niveau de l'ASM de 3.3 à 4
- Correction des problèmes de concurrence lors de la collecte de couverture
- Correctif pour #53 - problèmes avec les versions Junit d'instantanés
- Correctif pour #59 - dépendances en double définies via maven
0,28
- Détection de bloc final en ligne (--detectInlinedCode)
- Nouveau mutateur expérimental d'instruction switch (contribution de Chris Rimmer)
- Ne pas muter les classes Groovy
- Correctif pour #33 - définissez user.dir pour qu'il corresponde à surefire
- Correctif pour #43 - supprime éventuellement les dossiers horodatés (--timestampedReports=true/false)
- Correctif pour #44 – exception de modification simultanée lors de la collecte de couverture
- Correctif pour #46 - réglage incorrect des drapeaux par tâche de fourmi
- Empreinte mémoire réduite pour le processus principal
- Collecte de couverture plus rapide pour les grandes bases de code
- Analyse plus rapide du chemin de classe pour les bases de code volumineuses
- Prise en charge des méthodes de la suite JUnit 3
- Correctifs pour la détection incorrecte des tests JUnit 3
Problème connu - Le correctif pour #33 peut ne pas résoudre le problème pour les utilisateurs de Maven 2.
La détection du code Groovy n'a pas encore été testée avec Groovy 2, ce qui peut générer un code d'octet sensiblement différent des versions antérieures.
0,27
- Des rapports bien plus jolis
- Évite désormais de muter les instructions assert
- Option inScopeClasses supprimée - utilisez plutôt targetClasses et targetTests
- Correction d'une utilisation du processeur à 100 % lorsque la JVM enfant plante
- Correctif pour #35 #38 - le mutateur de variable de membre expérimental corrige désormais la pile
- Correctif pour #39 - l'ordre des éléments du chemin de classe est désormais conservé lors de l'exécution à partir de maven
Les utilisateurs effectuant une mise à niveau devront peut-être modifier leur build en raison de la suppression du paramètre inScopeClasses.
0,26
- Prise en charge des fourmis
- Nouveau mutateur expérimental pour les variables membres
- Correctif pour #12 #27 - ne se bloque plus lorsque le code testé lance des threads non démons
- Correctif pour #26 - avertit désormais lorsqu'aucune bibliothèque de test n'est trouvée sur le chemin de classe
- Correctif pour #30 - maintenant des erreurs si les classes mutées n'ont pas de débogage de ligne ou de source
- Correctif pour #32 - gère désormais correctement les hypothèses JUnit
Problème connu : le nouveau mutateur de variable membre peut provoquer des erreurs dans les erreurs synchronisées. Le mutateur est cependant désactivé par défaut, et les erreurs générées sont correctement gérées par PIT.
0,25
- Prise en charge de TestNG (expérimental)
- Correction du problème où les mutations dans les classes imbriquées ne sont pas isolées les unes des autres
- Correction de l'isolation brisée du chemin de classe pour les projets utilisant xstream
- Gestion améliorée des tests paramétrés JUnit
- Possibilité de limiter les mutations à des racines de chemin de classe spécifiques (--mutableCodePaths)
- Possibilité d'ajouter des racines de chemin de classe non lancées (--classPath) (expérimental)
- Lire les valeurs de configuration à partir de XML (expérimental)
- Option pour ne pas générer d'erreur lorsqu'aucune mutation n'est trouvée
- Ordre cohérent des classes dans le rapport HTML
- Statistiques écrites sur la console
- Les classes ne sont plus chargées lors de l'analyse initiale du chemin de classe
- Nouvelle syntaxe pour activer facilement toutes les opérations de mutation
0,24
- Prise en charge de JMockit
- Option pour afficher les résultats au format XML ou CSV
- Correctif pour le n°11
- Mutateur INLINE_CONSTS amélioré
0,23
- Correctif du problème 7 : fichiers sources introuvables
0,22
- Mise à niveau de Xstream vers 1.4.1 pour activer la prise en charge d'OpenJDK 7
- Correctif pour le n°5 – corruption du caractère de nouvelle ligne dans les processus enfants
- Possibilité de définir des arguments de lancement de processus enfants
0,21
- Améliorations significatives des performances
- Prise en charge de Powermock via le chargeur de classe (nécessite l'annotation PowerMockIgnore) et l'agent Java
- Rapport d'erreurs mineures et améliorations de la convivialité
- Correction d'un défaut majeur autour de l'analyse des dépendances
- Les dépendances PIT ne sont plus placées sur le chemin de classe lors de l'exécution via maven
- Prise en charge de l'exclusion de certaines classes ou tests
- Prise en charge de la journalisation détaillée
0,20
- Limiter le nombre de mutations par classe
- Mettre à niveau xstream vers 1.3.1
- Rendre disponible depuis Maven Central
0,19
- Les méthodes d'énumération intégrées sont désormais exclues de la mutation
- Correction d'un bug concernant le rapport des classes non testées
- Prise en charge de l'exclusion des tests supérieurs à une certaine distance de la classe
- Prise en charge de l'exclusion de méthodes de l'analyse de mutation
- Améliorations des performances
- Suppression de la prise en charge du lancement des rapports de mutation à partir de JUnit Runner
0,18
Problèmes
Veuillez consulter nos règles de gestion des tickets avant de créer ou de travailler sur des tickets.
Crédits
Pitest est principalement mon œuvre mais a bénéficié des contributions de nombreux autres.
Les contributions notables non visibles ici car elles ont été faites avant la migration de ce code vers github incluent
- Nicolas Rusconi - Tâche de fourmi
- Struan Kerr-Liddell - Améliorations du rapport HTML
- Stephan Pendorf - Multiples améliorations, y compris des mutateurs améliorés
Bien que PIT n'incorpore aucun code du projet Jumble (http://jumble.sourceforge.net/), la base de code Jumble a été utilisée comme guide lors du développement de certains aspects de PIT.