Pitest (alias PIT) adalah sistem pengujian mutasi canggih untuk Java dan JVM.
Baca semuanya di https://pitest.org
Rilis
1.17.2
- #1362 Kecualikan lambda dalam metode yang dikecualikan dengan anotasi (terima kasih @see-quick)
1.17.1
- #1353 Peringatkan tentang penghapusan sasaran SCM di masa mendatang
- #1355 Tingkatkan dukungan ASM untuk java 24
- #1359 Hapus penggunaan generator toString berbasis refleksi
- #1361 Dukungan awal untuk pengujian lintas modul di maven
1.17.0
- #1348 Perpanjang titik ekstensi transformasi
- #1349 Tingkatkan stabilitas powermock
1.16.3
- #1345 Peningkatan deteksi eksekusi tertunda dalam kode inisialisasi statis
- #1347 Tambahkan direktori sumber kotlin standar secara otomatis untuk proyek maven
1.16.2
- #1340 Tampilkan tes penutup untuk mutan yang masih hidup dalam laporan html (terima kasih @vivganes)
- #1342/#1343 Perbaiki pencatatan jalur riwayat yang menyesatkan (terima kasih @vivganes)
- #1344 Mutasi kode eksekusi tertunda di enum dan singleton
1.16.1
- #1329 Cegah bentrokan versi dengan tujuan agregat ketika plugin menggunakan jackson
1.16.0
- #1311 - Sertakan koleksi yang tidak dapat dimodifikasi yang disimpan langsung ke bidang dalam filter
+funmodifiablecollection
untuk kode pertahanan - #1319 - Gunakan variabel lingkungan dari konfigurasi pasti
- #1322 - Tambahkan -ea secara otomatis untuk mengaktifkan pernyataan
- #1321 - Perluas antarmuka BuildVerifier
Perubahan api di #1321 kompatibel dengan versi sebelumnya, namun plugin yang ditulis dengan versi 1.16.0 mungkin tidak berfungsi dengan versi sebelumnya.
1.15.8
- #1310 Filter mutasi ke Koleksi.tidak dapat dimodifikasi*
- #1309 Ganti kolom di argLines yang diimpor dari konfigurasi pasti
- #1308 Bump versi maven vcs
Pemfilteran untuk #1310 dinonaktifkan secara default. Untuk mengaktifkannya tambahkan string filter +funmodifiablecollection
.
1309 menambahkan properti pakar baru parseSurefireArgLine
. Ini disetel ke true secara default, tetapi penguraian argline sekarang dapat dinonaktifkan dengan menyetelnya ke false.
1.15.7
#1305 Cakupan tidak dicatat untuk kode dalam nama paket com.sun*
Filter yang dimaksudkan untuk mengambil kelas JDK lama dalam paket "com.sun.*" tidak memiliki '
, sehingga tidak ada cakupan kode yang didaftarkan jika kode yang diuji kebetulan berada dalam paket yang dimulai dengan "sun".
1.15.6
- #1295 menghapus pelacakan panggilan dinamis untuk sementara
Memanggil pelacakan panggilan dinamis untuk kode penginisialisasi statis akan diperkenalkan kembali ketika logika tambahan untuk menekan pemfilteran mutasi untuk kode eksekusi tertunda telah diterapkan.
1.15.5
- #1292 Baris arg yang diambil dari konfigurasi pasti tidak memiliki properti yang diganti
1.15.4
- #1288 - Titik ekstensi baru untuk memungkinkan format ekspor cakupan khusus
- #1289 - Parsing konfigurasi argline dari konfigurasi pasti
- #1274 Ikuti pemanggilan panggilan dinamis ketika mendeteksi metode penginisialisasi statis saja
Catatan, pengguna maven yang sebelumnya perlu menduplikasi parameter argline antara parameter jvmArgs
dan argline
surefire dan pitest mungkin perlu menyesuaikan konfigurasinya saat memutakhirkan. Entri yang diberikan ke surefire sekarang akan secara otomatis ditambahkan ke pitest.
1.15.3
- #1271 - Periksa kembali status thread sebelum menandai minion sebagai mati
1.15.2
- #1268 - Filter cek Lombok NonNull
- #1267 - Perluas api pengujian untuk memungkinkan pelaporan kesalahan selama pemindaian pengujian
#1267 akan memastikan bahwa kesalahan tersembunyi yang sebelumnya ditemukan oleh plugin JUnit5 kini akan dilaporkan. Ini adalah perubahan api yang kompatibel. Ini tidak akan berpengaruh sampai plugin JUnit5 diperbarui untuk menggunakan api yang diperluas. Plugin yang diperbarui tidak akan kompatibel dengan versi pitest sebelumnya.
1.15.1
- #1260 Tingkatkan ke ASM 9.6 untuk dukungan Java 22
- #1261 Jangan melakukan kesalahan pada file riwayat pitest < 1.15.0
1.15.0
- #1253 menyembunyikan statistik cakupan ketika pengurangan riwayat tes diaktifkan
- #1252 tambahkan parameter fitur ekstra untuk maven agar fitur dapat ditambahkan pada baris perintah tanpa menimpa daftar yang sudah ada
- #1251 perluas antarmuka riwayat (perubahan yang dapat menyebabkan gangguan)
- #1250 perbaiki pesan kesalahan saat gagal mengurai string fitur
- #1248 penyesuaian kinerja - tunda identifikasi kelas pengujian
- #1247 penghapusan kode lama
Sebagai akibat dari perubahan api yang dapat menyebabkan gangguan di #1251, plugin arcmutate kotlin harus ditingkatkan ke 1.1.0 ketika meningkatkan ke pitest 1.15.0
1.14.4
#1246 Prioritaskan pengujian pembunuhan sebelumnya saat menggunakan file riwayat
1.14.3
- #1239 Mendukung grup yang dikecualikan dengan dipisahkan koma (terima kasih @johnathana)
- #1243 Urutkan classpath secara eksplisit dalam file riwayat untuk memastikan konsistensi antar proses
- #1245 Cegah logging yang membingungkan dari proses analisis tambahan dummy
1.14.2
- #1221 - Penghitungan persentase terpadu (terima kasih @Vampire)
- #1218 - Keamanan thread untuk pengumpulan hasil saat pengujian dijalankan secara paralel (terima kasih @Vampire)
- #1225 - Mencegah kesalahan ketika file non arsip disertakan di classpath
- #1229 - Mutasi Iterables menjadi Daftar kosong
- #1227/1232 - Perbaiki antarmuka MethodMutator agar bergantung pada tipe abstrak
1.14.1
- #1215 Terapkan penulisan ulang cakupan saat menggabungkan laporan
- #1219 Pastikan percobaan dengan pemfilteran sumber daya diterapkan terlebih dahulu (terima kasih @Vampire)
1.14.0
- #1213 Filter setara, bagi dengan -1 mutan matematika
- #1212 Tambahkan peluncur platform junit secara otomatis
#1212 Menyelesaikan sebagian besar masalah menjaga versi plugin pitest-junit5 tetap sinkron dengan versi junit5 untuk pengguna maven.
Ketika digunakan dengan plugin pitest-junit5 1.2.0, pitest sekarang akan secara otomatis memilih versi junit-platform-launcher yang kompatibel dengan versi junit5 yang digunakan oleh sistem yang diuji.
Masalah tetap ada bagi pengguna gradle yang mungkin masih menemukan kompatibilitas api saat menggunakan plugin pitest-junit5 1.2.0. Namun masalah ini sekarang dapat diselesaikan dengan menambahkan secara manual versi junit-platform-launcher yang benar ke classpath.
Diharapkan versi plugin pitest gradle yang akan datang akan mengimplementasikan perbaikan yang mirip dengan solusi pitest-maven.
1.13.2
- #638 Pastikan % ditampilkan sebagai 100 ketika semua mutan terbunuh (terima kasih @Vampire)
- #1197 Tampilkan info permulaan saat logging disetel ke VERBOSE_NO_SPINNER (terima kasih @Vampire)
- #1198 Peningkatan pencatatan (terima kasih @Vampire)
- #1200 Peringatkan jika eksekusi pengujian paralel diaktifkan selama pengumpulan cakupan (terima kasih @Vampire)
- #1199 Beralih ke System.nanoTime untuk pengaturan waktu pengujian (terima kasih @Vampire)
- #1207 Dukungan untuk penghapusan anotasi tingkat kelas
1.13.1
- #1194 Dukungan
**.
pola dalam gumpalan (terima kasih @Pfoerd)
1.13.0
- #1188 Izinkan mutator menghasilkan banyak mutasi berbeda
- #1190 Berikan prioritas pengujian kepada pencegat
- #1191 Aktifkan mutasi anotasi metode dan kolom
1.12.0
1.11.7
- #1178 Koma dalam mematikan nama pengujian merusak ekspor csv (terima kasih @Bonajo)
- #1177 Terapkan fitur dalam urutan yang konsisten
- #1176 Tingkatkan ke ASM 9.5
1.11.6
- #1171 Cegah pembuatan instance ganda pada fitur
- #1170 Perbarui tautan ke https (terima kasih @romani)
1.11.5
- #1167 Perbaiki kinerja analisis statis yang buruk untuk metode besar
- #1166 Perbarui tautan web paling buruk ke https (terima kasih @romani)
1.11.4
- #1161 Cegah duplikat clinit bila ada clinit sintetik
- #1162 Tambahkan direktori sumber kotlin secara otomatis ke maven saat ada
1.11.3
- #1159 Hanya sertakan kelas yang bermutasi dalam statistik cakupan garis
1.11.2
- #1157 Laporkan hanya baris kode target
Statistik cakupan garis yang dilaporkan di konsol menyertakan baris kode untuk keseluruhan proyek, bahkan ketika filter diterapkan. Hal ini mengakibatkan skor cakupan yang sangat rendah.
1.11.1
- #1156 Mencegah garis sintetis dihitung dalam cakupan
1.11.0
- #1138 Jangan mutasikan fall through yang berlebihan ke switch case default
- #1150 Poin ekstensi baru
Perhatikan bahwa #1150 mencakup perubahan antarmuka yang dapat mengganggu yang mungkin memerlukan pembaruan pada plugin pihak ketiga.
1.10.4
- #1134 Tambahkan parameter
excludedRunners
ke antarmuka baris perintah dan Ant - #1131 Mendukung sintaksis evaluasi properti akhir yang pasti untuk argline
1.10.3
- #1128 Perbaikan bug - baris dengan entri debug berulang dihitung ganda
1.10.2
- #1125 Perbaikan bug - metode lambda sintetik tidak diperlakukan sebagai baris kode
1.10.1
- #1124 Memperbaiki bug yang diperkenalkan di 1.10.0 di mana metode jembatan diperlakukan sebagai baris kode yang valid
1.10.0
- #1067 Peningkatan dukungan Quarkus dan Roboelektrik
- #1116 Opsi untuk mengecualikan baris 0 dan 1 dari semua kelas
- #1118 Deteksi plugin yang hilang
Sebagai hasil dari #1067, penting bahwa mutasi hanya dibuat untuk satu kelas untuk setiap JVM. Oleh karena itu, titik ekstensi MutationGrouper
telah dihapus karena hal ini memungkinkan batasan ini dilanggar. Plugin pihak ketiga mana pun yang menggunakan ekstensi ini tidak lagi didukung.
Rilisan ini juga mencakup beberapa perubahan pada struktur data internal. Plugin pihak ketiga mana pun yang mengandalkan struktur ini mungkin perlu diperbarui.
1116 menyediakan cara kasar untuk mengecualikan kode yang dibuat secara otomatis yang tidak diambil oleh filter pitest lainnya. Ini dinonaktifkan secara default karena mungkin mengecualikan kode yang valid untuk mutasi dalam beberapa situasi, namun dapat diaktifkan dengan menambahkan string fitur +nofirstline
.
1.9.11
- #1105 Agregator menyelesaikan file yang salah untuk file kotlin di luar paket dengan nama yang sama
- #1111 Perbaiki kesalahan ketik log (terima kasih @wangbo15)
1.9.10
- #1106 Jangan ganti Map.of dengan Collections.emptyMap
- #1109 Santai pemeriksaan debug berkas sumber
1.9.9
- #1098 Sertakan nilai kasus dalam deskripsi mutasi saklar
1.9.8
- #1094 Mencari berkas sumber di luar direktori paket
Menambahkan dukungan untuk bahasa seperti Kotlin yang file sumbernya mungkin tidak berada dalam struktur direktori yang cocok dengan paketnya. Perhatikan bahwa jika nama file yang sama muncul di lebih dari satu lokasi, pitest tidak dapat menjamin untuk menyelesaikan file yang benar.
1.9.7
- #1091 - Nama kelas escape dalam XML cakupan
1.9.6
- #1092 - Tingkatkan ke ASM 9.4
- #1091 - Keluar dari cakupan XML dengan benar
- #1088 - Hapus parameter jarak ketergantungan yang tidak digunakan
- #1085 - Jangan membuat laporan stempel waktu secara default
Perhatikan bahwa #1085 mengubah perilaku default sehingga laporan tidak lagi ditulis ke direktori yang diberi stempel waktu secara default. Jika Anda memerlukan perilaku ini, Anda harus mengaktifkannya secara eksplisit.
1.9.5
- #1078 - Mengubah antarmuka Config Updater
- #1079 - Hindari pencatatan JBoss secara default
1078 adalah perubahan antarmuka yang dapat menyebabkan gangguan, tetapi disertakan dalam rilis titik karena diyakini saat ini tidak ada klien eksternal.
1.9.4
- #1063 - Tingkatkan penyaringan mutan kembali yang setara
- #1064 - Hapus mutator return val lama dan grup default lama
- #1066 - Perluas pemfilteran penginisialisasi statis
- #1070 - Hapus agen jacoco jika ada di argline
1.9.3
- #1052 - Mendukung properti maven argLine dan string tunggal argLines
- #1054 - Memberikan kontrol atas penambahan otomatis -Djava.awt.headless=true
- #1055 - Opsi untuk mengatur jumlah thread secara otomatis
- #1056 - Tetapkan batas waktu untuk komunikasi soket
- #1058 - Tetapkan default untuk pengkodean input dan output untuk api terprogram
1054 Memindahkan dukungan penambahan otomatis headless=true (untuk mencegah fokus keyboard dicuri di Mac) ke dalam fitur. Ini diaktifkan secara default, tetapi dapat dinonaktifkan dengan menambahkan -MACOS_FOCUS
ke string fitur.
1055 menambahkan opsi untuk menebak jumlah thread yang sesuai untuk mesin saat ini dengan menambahkan +auto_threads
string fitur. Opsi ini dinonaktifkan secara default dan dirancang untuk penggunaan lokal. Tidak disarankan untuk digunakan pada server CI.
1.9.2
- #1050 - Periksa minion masih hidup untuk mencegah proses hang
1.9.1
- #1047 Mitigasi untuk proses terputus-putus terhenti
1.9.0
- #1035 - Meningkatkan konsumsi memori cakupan
- #1038 - Mendukung Plugin Situs Maven 3.12.0+ (terima kasih IOs)
- #1040 - Penghitungan cakupan JUnit 5 lebih cepat
- #1040 - Hapus parameter
dependencyDistance
Sebagai hasil dari #1040, semua plugin pengujian eksternal yang paling buruk (misalnya JUnit 5, TestNG, akselerator arcmutate) harus diperbarui ke versi yang kompatibel (1.0.0) saat melakukan peningkatan.
File riwayat dari rilis sebelumnya tidak kompatibel dan harus dihapus saat melakukan upgrade.
Versi yang lebih lama
1.8.1
- #637 - Mendukung pengkodean input dan output yang berbeda (terima kasih @qxo)
- #705 - Izinkan + di jalur file (terima kasih @ali-ghanbari)
- #903 - Filter mutan dalam konstruktor tunggal
- #1025 - Mengolah ulang pemfilteran String Switch
- #1027 - Mengolah ulang pemfilteran tegas dan menghapus mekanisme filter lama
- #1030 - Filter mutasi sampah enum switch
1.8.0
- #1017 - Meningkatkan deteksi loop tak terbatas statis
- #1020 - Kerjakan ulang pustaka pencocokan NFA dan coba dengan pemfilteran sumber daya
- #1022 - Mendukung uji kuarkus
1.7.6
- #1008 Tingkatkan ASM untuk dukungan awal Java 19
- #1016 Gagal sepenuhnya ketika tidak ada plugin pengujian yang berfungsi
- #1015 Pindahkan dukungan TestNG dari basis kode utama
Sebagai hasil dari #1015 plugin TestNG sekarang harus dikonfigurasi ketika menggunakan pitest dalam basis kode yang diuji oleh TestNG. Dalam rilis sebelumnya, dukungan disertakan secara otomatis.
1.7.5
- #625 / #983 Memperbaiki agregasi laporan (terima kasih @therealryan dan @aurelien-baudet)
- #985 Tidak termasuk pegangan kosong
- #993 Pindahkan mutator rv ke plugin eksternal
- #994 / #995 Filter kotak setara mengembalikan mutan sejati di blok percobaan
- #968 / 997 Tingkatkan pemfilteran mutan kembalian kosong yang setara
- #999 / 1003 Parameter baru untuk menemukan akar proyek multi modul
Sebagai hasil dari #993, siapa pun yang ingin menggunakan operator RV yang berorientasi pada penelitian harus mengkonfigurasi plugin pitest-rv, namun mutator ini tidak direkomendasikan untuk penggunaan umum.
1.7.4
- #965 - Mutator BigDecimal (terima kasih @MarcinNowak-codes)
- #750 - Dukungan -DskipTests dari baris perintah (terima kasih @marwin1991)
1.7.3
- #952 Mutasi peta, kembalikan ke
emptyMap
dan bukannya null - #954 Izinkan mutator dikecualikan
- #957 Filter mutasi yang setara ke Boolean.TRUE dan Boolean.FALSE
1.7.2
- #943 Ubah mutator default - ganti negate conditional dengan hapus conditional
- #946 Aliran yang bermutasi kembali ke aliran kosong dan bukannya nol
1.7.1
- #932 Perbaiki deskripsi mutasi saklar
- #934 Konfigurasikan verbositas keluaran konsol
- #940 Sembunyikan fitur internal
- #942 Perbaikan untuk operator mutasi pihak ketiga tidak ditambahkan ke jalur kelas klien
- #939 Tingkatkan cache pengambilan bytecode
1.7.0
- #923 Perubahan antarmuka internal
- #930 Mutator yang dapat dicolokkan
Karena perubahan internal, beberapa plugin pihak ketiga mungkin tidak kompatibel dengan rilis ini.
Semua file riwayat harus dihapus sebelum memutakhirkan.
Nama-nama mutator penghapusan kondisional telah sedikit berubah karena #930 dan mungkin perlu diperbarui dalam skrip build jika diaktifkan secara eksplisit.
1.6.9
- #922 Filter stream.empty mutan yang setara dalam panggilan flatMap
- #921 Jaminan pesanan operator mutasi
- #919 Filter mutasi sampah pada data java
1.6.8
- #917 - Tambahkan metode untuk mengambil semua id mutator untuk pitclipse dan peralatan lainnya
- #913 - Tingkatkan ASM ke 9.2
1.6.7
- #897 Perbaiki deskripsi saat mengganti nilai dengan himpunan kosong
- #900 Mendukung beberapa mesin uji
- #822 Perbaiki regresi NPE saat membaca manifes classpath
- #798 Perbaiki regresi dukungan parameter jvmArgs melalui maven
- #797 Perbaiki regresi cakupan garis di konsol
Sebagai hasil dari #900, parameter testPlugin
sekarang tidak berfungsi, tetapi pitest akan terus menerimanya tanpa kesalahan untuk rilis ini. Pitest akan menggunakan mesin pengujian apa pun yang disediakan di classpath, kembali ke dukungan bawaan JUnit4 ketika mesin pengujian lain tidak dapat menangani kelas tersebut.
1.6.6
- #891 - Perbaiki riwayat kinerja
- #889 - Jangan memindai classpath untuk mencari riwayat ketika opsi tidak tersedia
- #887 - Perbaiki css untuk waktu habis dan kesalahan memori
- #888 - Hapus mutan maksimal yang tidak berfungsi per parameter kelas
- #890 - Hapus parameter inisialisasi statis mutasi yang tidak berfungsi
1.6.5
- #882 Hindari menjalankan tes ketika tidak ada mutan yang memungkinkan
1.6.4
- #862 Perbarui ASM untuk Java 16
1.6.3
- #853 Perbaiki pemeriksaan fitur yang tidak peka huruf besar/kecil
- #855 Menyediakan data cakupan untuk pencegat
- #857 Berikan data stderr/out per baris (terima kasih @kgeilmann)
- #858 Perbaiki tes yang tidak gagal ketika maxSurviving adalah 0 (terima kasih @alexkoltz)
- #860 Perbaiki mutasi sampah yang sedang dicoba dengan sumber daya di Java 11+
1.6.2
- #770 dan #746 Perbaiki NPE selama tahap liputan (terima kasih @LaurentTho3)
- #849 Jadikan nama fitur tidak peka huruf besar-kecil
- #844 Perluas sistem fitur agar berfungsi dengan pendengar
- #842 Jadikan opsi laporan tersedia bagi pendengar
1.6.1
- Otomatiskan rilis ke maven central
- #774 Uji statistik kekuatan (terima kasih @alex859)
- #798 Aktifkan jvm args untuk diteruskan dari baris perintah (terima kasih @yfrolov)
- #797 Tambahkan cakupan saluran ke konsol (terima kasih @qxo)
- #822 Mengurangi NPE pada ketergantungan yang tidak disengaja (terima kasih @szpak)
1.5.2
- #749 Dukungan ANT untuk opsi fullMutationMatrix (terima kasih @ayaankazerouni)
- #752, #755, #757 Peningkatan versi dan peningkatan kode lama (terima kasih @AlexElin)
- #758 Benar bisa untuk paket pengujian (terima kasih @nicerloop)
- #765 Perbaiki analisis tambahan untuk TestNG (terima kasih @StefanPenndorf)
1.5.1
- #737 Tambahkan tanda skipFailingTests ke alat baris perintah (terima kasih @szpak)
- #739 Perbaiki kesalahan ketik pada pesan kesalahan (terima kasih @vmellgre)
- #745 Perbaiki pesan kesalahan saat junit tidak berada di classpath (terima kasih @szpak)
- #748 Naikkan asm ke 8.0 untuk dukungan Java 14
1.5.0
- #556 - Jangan mutasi konstruktor enum
- #726 - Pastikan cakupan penginisialisasi statis dicatat
- #734/#735/#736 - Ganti antarmuka lama dengan Java API (terima kasih @AlexElin)
1.4.11
- #683 - Filter coba-dengan-sumber daya sebelum memfilter kode sebaris (terima kasih @Vampire)
- #686 - Jangan cetak nama kelas dua kali untuk unit pengujian yang tidak dapat dipisahkan (terima kasih @Vampire)
- #672 - Jangan sertakan direktori saat ini ke jalur kelas minion (terima kasih @Vampire)
- #692 - Tambahkan property='skipPitest' untuk melewati plugin atribut inn maven (terima kasih @cjgwhite)
- #697 - Kompatibilitas TestNG 7.0.0 (terima kasih @kris-scheibe)
- #666 - UOI4 melaporkan nama kolom yang bermutasi (terima kasih @LaurentTho3)
- #716 - Tingkatkan asm ke 7.3.1 (diperlukan untuk Java 14)
- #710 - Gunakan set mutator baru secara default
1.4.10
- #534 Blok yang lebih kecil untuk penargetan pengujian yang lebih tepat (terima kasih @jon-bell)
- #664 Perbaiki kunci peta A0D2 (terima kasih @Vampire)
- #656 Karakter escape dalam metode init untuk laporan html (terima kasih @Vampire)
- #404 Filter mutasi sampah ke panggilan Objects.requireNonNull yang dihasilkan kompiler
1.4.9
- #613 / #623 - Perbaikan masalah powermock aktif (terima kasih @jon-bell)
- #614 - Peningkatan pesan kesalahan ketika tidak ada plugin pengujian (terima kasih @szpak)
- #620 - Mendukung pemroses anotasi seperti Micronaut yang tidak menyetel nama file debug
1.4.8
- #597 Perbaikan bug dalam cakupan ketika jumlah kelas banyak (terima kasih @jon-bell)
- #601 Hindari mencuri fokus keyboard di macOS (terima kasih @maxgabut)
1.4.7
- #545 - Perhitungan cakupan lebih cepat (terima kasih @jon-bell)
1.4.6
- #580 - tingkatkan ke ASM 7.1
- #573 - Dukungan semut untuk
testPlugin
dan failWhenNoMutations
(terima kasih @mduggan) - #555 - Izinkan elemen kosong dalam konfigurasi maven (terima kasih @maxgabut)
1.4.5
- #557 - Masalah berjalan di Java 8
1.4.4
- #518 - Mutator BigInteger Eksperimental (terima kasih @ripdajacker)
- #513 - Urutkan mutator dalam laporan html (terima kasih @ThLeu)
- #553 - Mutator klasik dari sastra (terima kasih @LaurentTho3)
- #528 - Menambahkan opsi skipFailingTests dari plugin maven (terima kasih @nicerloop)
1.4.3
- #510 - Hitung matriks uji mutasi (terima kasih @nrainer)
- #519 - Dukungan Java 11
1.4.2
- #500 - Dukungan untuk classpath besar dengan opsi
useClasspathJar
baru (terima kasih @jqhan)
1.4.1
- #446 - Abaikan direktori kosong saat menggabungkan laporan (terima kasih @maxgabut)
- #457 - Perbaiki direktori dasar dalam proyek multi modul (terima kasih @sarahBuisson dan @giggluigg)
- #471 - Dukungan dasar Java 11
- #477 - Byte nol dalam xml (terima kasih @maxgabut)
- #480 - Izinkan agregasi laporan yang diberi stempel waktu (terima kasih @maxgabut)
- #495 - Pindahkan ringkasan ke akhir keluaran konsol (terima kasih @pedrorijo91)
- #499 - Perbaikan untuk mutan setara di mutator return val baru
1.4.0
- #445 - Naikkan versi Java minimum yang didukung ke 8
- Beralih ke ASM 6.1.1
- #448 Laporan agregat berdasarkan modul (terima kasih @sarahBuisson)
- #462 Nama tes escape dalam cakupan xml (terima kasih @maxgabut)
1.3.2
- #433 - Laporan gabungan melalui maven (terima kasih @rchargel)
- #438 - Tes filter pada tingkat metode (terima kasih @ftrautsch)
- #439 - Mutator pengembalian primitif tidak menangani byte
- #380 - Hilangkan ketergantungan pada xstream untuk dukungan java 9 yang lebih baik
- #414 - Ganti penyimpanan riwayat xstream (terima kasih @kiftio)
Perhatikan saat memutakhirkan bahwa file riwayat yang dihasilkan oleh rilis sebelumnya tidak kompatibel dengan versi 1.3.2 dan di atasnya.
1.3.1
- #434 - Peringatan keamanan XStream
1.3.0
- #196 - Naikkan versi minimum Java menjadi 7
- #425 - Perluas untuk setiap deteksi
- #428 - Tambahkan parameter
excludedTestClasses
- #379 - Hapus dukungan untuk mutasi inisialisasi statis
- #432 - Tambahkan fungsi plugin ekspor ke pitest
- #427 - Mutator nilai pengembalian yang lebih baik
- #429 - Sederhanakan api uji
428 mengubah perilaku filter kelas yang dikecualikan. Sebelumnya hal ini mengecualikan kelas agar tidak dimutasi dan dijalankan sebagai pengujian yang mungkin memerlukan perubahan bagi sebagian orang saat melakukan peningkatan.
Akibatnya 429 pengujian TestNG tidak lagi terdeteksi secara otomatis - parameter testPlugin
yang baru harus secara eksplisit disetel ke "testng".
1.2.5
- #407 - Sasaran SCM tidak dapat dijalankan dari dalam modul (terima kasih @sbuisson)
- #256 - Gaya sebaris melanggar Kebijakan Keamanan Konten (terima kasih @kiftio)
- #403 - Tidak ada css dalam laporan html yang dilihat dari jenkins (terima kasih @kiftio)
- #409 - Mutasi berdasarkan perubahan di seluruh cabang (terima kasih @sbuisson)
- #418 - Hindari penambahan loop for
- #424 - Hindari untuk setiap kode
- #389 - Memperluas pencocokan pemeriksaan null implisit
1.2.4
- #397 - Laporkan alasan modul maven dilewati
- #389 - Filter pemeriksaan null getClass sampah di lambda
- #400 - Perbarui ke ASM 6.0
1.2.3
- Pembaruan ke ASM 6 untuk dukungan Java 9
- #388 - Tandai plugin maven sebagai threadsafe
- #362 - Menekan mutan umum yang setara dengan metode yang setara
1.2.2
- #367 - Analisis statis tidak dapat menemukan kelas inti di beberapa proyek
1.2.1
- #347 - Hindari kode yang dibuat secara otomatis (misalnya oleh lombok) yang dianotasi dengan @Generated
- #285 - Hindari kondisional yang dihasilkan kompiler dalam string aktif. (terima kasih @Kwaq)
- #218 - "Penerima telanjang" / mutator rantai metode baru. (terima kasih @UrsMetz)
- #354/#356 - Titik ekstensi baru ditambah perubahan untuk mengurangi biaya akses acak ke bytecode untuk analisis statis
- #353 - Peningkatan deteksi kode penginisialisasi statis
- #364 - Filter loop tak terbatas melalui analisis statis
- #365 - Sistem konfigurasi untuk plugin
(Catatan #347 tidak akan mendeteksi javax.annotaion.Generated
karena hanya memiliki retensi sumber.)
1.2.0
- #318 - Pisahkan kode proses utama dari jalur kelas klien berbagi kode
- #295 - Abaikan tes TestNG abstrak
- #215 - Pemilihan kelas target otomatis untuk pakar
- #314 - Jangan gagal untuk modul maven tanpa tes atau kode
- #306 - Jangan gagal ketika hanya antarmuka yang ada dalam set perubahan
- #325 - Kelas anonim dalam pengujian Spock menyebabkan kesalahan
- #334 - Kompatibilitas dengan rilis TestNG terbaru
- #335 - Cakupan yang salah dengan powermock
Catatan - mulai rilis ini plugin maven akan secara otomatis menentukan kelas mana yang akan dimutasi alih-alih berasumsi bahwa nama paket cocok dengan id grup.
1.1.11
- #269 - Tidak mungkin menghancurkan build pada 1 mutan
- #271 - Sertakan deskriptor metode dalam cakupan baris
- #170 - Pengecualian oleh pelari JUnit
- #291 - Tangani kosong tidak termasuk
- #287 - Periksa hierarki kelas untuk anotasi
- #289 - Opsi untuk menyediakan classpath dari file
1.1.10
- #260 - Dukungan awal untuk mutasi kode Kotlin
- #264 - Dukungan untuk pelari yatspec (terima kasih @theangrydev)
- Hancurkan bangunan ketika lebih dari
maxSurviving
mutan yang bertahan bertahan
1.1.9
- #132 - Izinkan analisis hanya file yang disentuh pada commit terakhir (terima kasih Tomasz Luch)
1.1.8
- #239 - Menyediakan pintasan untuk mengatur file riwayat melalui maven
- #240 - Dukungan untuk regex (terima kasih sebi-hgdata)
- #243 - Gunakan port sementara untuk berkomunikasi dengan minion
1.1.7
- #196 - Naikkan versi minimum Java menjadi 1.6
- #231 - Proses terhenti
1.1.6
- #10 - Tambahkan sasaran laporan pakar (terima kasih jasonmfehr)
- #184 - Hapus fitur file proyek yang tidak berdokumen
- #219 - Peningkatan kinerja untuk pembuatan laporan (terima kasih tobiasbaum)
- #190 - Izinkan properti khusus untuk plugin
Perhatikan rilis ini berisi masalah umum (#231). Silakan tingkatkan.
1.1.5
- Perbaikan untuk #148 - Stackoverflow dengan penyedia data TestNG saat menggunakan JMockit
- Perbaikan untuk #56 - Tidak melaporkan ketidakcocokan junit
- Perbaikan untuk #174 - linecoverage.xml tidak valid dengan inisialisasi statis
- Perbaikan untuk #183 - Tidak dapat menjalankan pengujian GWTMockito
- Perbaikan untuk #179 -
includeLaunchClasspath=false
rusak di Windows - #173 - Baca pengecualian dan grup dari konfigurasi maven surefire
1.1.4
- #157 - Dukungan maven -DskipTests flag (terima kasih lkwg82)
- Perbaikan untuk #163 - Tidak boleh menyertakan pohon pengujian dalam ambang cakupan
- #166 - Izinkan pengecualian classpath untuk plugin maven (terima kasih TomRK1089)
- #155 - Memulihkan kompatibilitas Java 5
- Perbaikan untuk #148 - Masalah pada JMockit + TestNG (terima kasih estekhin dan KyleRogers)
1.1.3
- Perbaikan untuk #158 - Pengujian salah dikecualikan dari mutan
- Perbaikan untuk #153 - Plugin SCM rusak untuk maven 2
- Perbaikan untuk #152 - Tidak bekerja dengan IBM jdk
1.1.2
- Perbaikan untuk #150 - cakupan saluran di bawah yang dilaporkan
1.1.1
- Cakupan berbasis blok (perbaikan 79/131)
- Akhiri dukungan untuk berjalan di Java 5 (bytecode Java 5 masih didukung)
- Lewati tanda untuk modul maven (#106)
- Berhenti mendeklarasikan TestNG sebagai ketergantungan
- Mutator propagasi parameter baru (terima kasih UrsMetz)
1.1.0
- Ubah skema untuk mengidentifikasi mutan (lihat #125)
- Mendukung api uji alternatif melalui sistem plugin
- Laporkan kesalahan ketika nama mutator yang diberikan tidak cocok (terima kasih artpb)
- Laporkan kode keluar dari proses anak cakupan (terima kasih KyleRogers)
- Perlakukan pengujian JUnit dengan anotasi ClassRule sebagai satu unit (terima kasih devmop)
Harap dicatat bahwa semua file riwayat atau hasil sonar yang disimpan menjadi tidak valid oleh rilis ini.
1.0.0
- Ganti skema penomoran versi
- Tingkatkan ke ASM 5.0.2
- Perbaikan untuk #114 - gagal dijalankan untuk Java 8 ketika tanda -parameters disetel
- #99 Mendukung properti tambahanClasspathElements di plugin maven (terima kasih artpb)
- #98 Jangan bermutasi Java 7 coba dengan sumber daya (terima kasih @artspb)
- #109 diperpanjang menghapus mutator bersyarat (terima kasih @vrthra)
0,33
- Pindah ke Github
- Peningkatan ASM untuk mendukung bytecode Java 8 (berkat "iirekm")
- Dukungan parsial untuk kategori JUnit (berkat "chrisr")
- Mutator Hapus Peningkatan Baru (terima kasih kepada Rahul Gopinath)
- Perbaikan logging kecil (terima kasih kepada Kyle Rogers alias Stephan Penndorf)
- Perbaikan untuk #92 - dukungan maven 2 yang rusak
- Perbaikan untuk #75 - pengujian yang salah diabaikan di kelas dengan @Ignore dan @BeforeClass / @AfterClass
0,32
- mengembalikan kompatibilitas Java 7
- baru menghapus mutator kondisional
- dukungan untuk mutasi inisialisasi statis dengan TestNG
- mengisolasi jalur kelas dengan benar saat dijalankan melalui Ant
- istirahat dibangun di atas ambang batas cakupan
- izinkan JVM ditentukan
- mendukung strategi pemilihan tes yang ditentukan pengguna
- mendukung format keluaran yang ditentukan pengguna
- mendukung prioritas pengujian yang ditentukan pengguna
- perbaikan untuk masalah pemblokiran penggunaan dengan Robolectric
Catatan, pengaturan untuk proyek berbasis Ant berubah dalam rilis ini. Lihat pengaturan semut untuk detail penggunaan.
0,31
- Kompatibilitas Maven 2 dipulihkan
- Perhitungan cakupan jalur jauh lebih cepat
- Perbaikan untuk #78 - Kesalahan saat pengujian PowerMockito menyimpan tiruan sebagai anggota
Rilis ini juga mengubah sejumlah rincian implementasi internal, beberapa di antaranya mungkin menarik/penting bagi mereka yang memelihara alat yang terintegrasi dengan PIT.
Mutasi sekarang dicakup secara internal seperti yang dijelaskan di https://groups.google.com/forum/#!topic/pitusers/E0-3QZuMYjE
Kelas baru (org.pitest.mutationtest.tooling.EntryPoint) telah diperkenalkan yang menghilangkan beberapa duplikasi yang ada dalam berbagai cara meluncurkan analisis mutasi.
0,30
- Dukungan untuk tes Spock berparametri
- Dukungan untuk pengujian JUnitParams
- Perbaikan untuk #73 - Pengujian berparameter JUnit memanggil mutee selama penyiapan gagal selama fase mutasi
- Perbaiki ke #63 - tugas semut gagal ketika opsi kosong tersedia
- Kemampuan untuk mengganti opsi pakar dari baris perintah
- Kemampuan untuk menggagalkan suatu build jika tidak mencapai skor mutasi yang diberikan
- Peningkatan kinerja saat pengujian menggunakan anotasi @BeforeClass atau @AfterClass
- Penjadwalan yang sedikit lebih baik pada beberapa thread
- Peningkatan dukungan multi proyek maven
- Integrasi dengan kontrol sumber untuk pengguna pakar
0,29
- Analisis tambahan (--historyInputLocation dan --historyOutputLocation)
- Deteksi kode sebaris diaktifkan secara default
- Logging lebih senyap secara default
- Peningkatan dukungan Java 7
- Peningkatan ASM dari 3.3 ke 4
- Perbaikan untuk masalah konkurensi selama pengumpulan cakupan
- Perbaikan untuk #53 - masalah dengan versi snapshot junit
- Perbaikan untuk #59 - dependensi duplikat yang disetel melalui maven
0,28
- Deteksi blok akhirnya sebaris (--detectInlinedCode)
- Mutator pernyataan saklar eksperimental baru (dikontribusikan oleh Chris Rimmer)
- Jangan bermutasi kelas Groovy
- Perbaikan untuk #33 - atur user.dir agar cocok
- Perbaikan untuk #43 - secara opsional menyembunyikan folder yang diberi stempel waktu (--timestampedReports=true/false)
- Perbaikan untuk #44 - pengecualian modifikasi bersamaan saat mengumpulkan liputan
- Perbaikan untuk #46 - pengaturan bendera yang salah oleh tugas semut
- Jejak memori yang lebih kecil untuk proses utama
- Pengumpulan cakupan yang lebih cepat untuk basis kode yang besar
- Pemindaian classpath lebih cepat untuk basis kode besar
- Dukungan untuk metode suite JUnit 3
- Perbaikan untuk deteksi tes JUnit 3 yang salah
Masalah yang diketahui - Perbaikan untuk #33 mungkin tidak menyelesaikan masalah untuk pengguna maven 2.
Deteksi kode Groovy belum diuji dengan Groovy 2 yang mungkin menghasilkan kode byte yang jauh berbeda dengan versi sebelumnya.
0,27
- Laporan yang jauh lebih indah
- Sekarang hindari mutasi pernyataan tegas
- Opsi inScopeClasses dihapus - gunakan targetClasses dan targetTests sebagai gantinya
- Perbaiki penggunaan CPU 100% saat JVM anak mogok
- Perbaikan untuk #35 #38 - mutator variabel anggota eksperimental kini mengoreksi tumpukan
- Perbaikan untuk #39 - urutan elemen classpath kini dipertahankan saat dijalankan dari maven
Pengguna yang melakukan upgrade mungkin perlu memodifikasi build mereka karena penghapusan parameter inScopeClasses
0,26
- Dukungan semut
- Mutator eksperimental baru untuk variabel anggota
- Perbaikan untuk #12 #27 - tidak lagi hang ketika kode yang diuji meluncurkan thread non daemon
- Perbaikan untuk #26 - sekarang memperingatkan ketika tidak ada perpustakaan pengujian yang ditemukan di classpath
- Perbaikan untuk #30 - sekarang error jika kelas yang bermutasi tidak memiliki debug baris atau sumber
- Perbaikan untuk #32 - sekarang menangani asumsi JUnit dengan benar
Masalah yang diketahui - Mutator variabel anggota baru dapat menyebabkan kesalahan dalam kesalahan tersinkronisasi. Namun mutator dinonaktifkan secara default, dan kesalahan yang dihasilkan ditangani dengan benar oleh PIT.
0,25
- Dukungan TestNG (eksperimental)
- Perbaikan untuk masalah ketika mutasi di kelas bersarang tidak terisolasi satu sama lain
- Perbaikan isolasi classpath yang rusak untuk proyek yang menggunakan xstream
- Peningkatan penanganan pengujian parameter JUnit
- Kemampuan untuk membatasi mutasi pada akar classpath tertentu (--mutableCodePaths)
- Kemampuan untuk menambahkan akar classpath non peluncuran (--classPath) (eksperimental)
- Membaca nilai konfigurasi dari XML (eksperimental)
- Pilihan untuk tidak melakukan kesalahan ketika tidak ditemukan mutasi
- Urutan kelas yang konsisten dalam laporan HTML
- Statistik ditulis ke konsol
- Kelas tidak lagi dimuat selama pemindaian classpath awal
- Sintaks baru untuk mengaktifkan semua operasi mutasi dengan mudah
0,24
- dukungan JMockit
- Pilihan untuk menampilkan hasil dalam XML atau CSV
- Perbaiki untuk #11
- Mutator INLINE_CONSTS yang ditingkatkan
0,23
- Perbaikan untuk masalah 7 - file sumber tidak ditemukan
0,22
- Tingkatkan Xstream ke 1.4.1 untuk mengaktifkan dukungan OpenJDK 7
- Perbaikan untuk #5 - kerusakan karakter baris baru dalam proses anak
- Kemampuan untuk mengatur argumen peluncuran proses anak
0,21
- Peningkatan kinerja yang signifikan
- Dukungan untuk powermock melalui classloader (memerlukan anotasi PowerMockIgnore) dan agen java
- Pelaporan kesalahan kecil dan peningkatan kegunaan
- Perbaikan untuk kerusakan besar seputar analisis ketergantungan
- Ketergantungan PIT tidak lagi ditempatkan di classpath saat dijalankan melalui maven
- Dukungan untuk mengecualikan kelas atau tes tertentu
- Dukungan untuk pencatatan verbose
0,20
- Batasi jumlah mutasi per kelas
- Tingkatkan xstream ke 1.3.1
- Sediakan dari maven central
0,19
- Metode enum bawaan sekarang dikecualikan dari mutasi
- Memperbaiki bug seputar pelaporan kelas yang belum diuji
- Dukungan untuk mengecualikan tes yang lebih jauh dari jarak tertentu dari kelas
- Dukungan untuk mengecualikan metode dari analisis mutasi
- Peningkatan kinerja
- Menghapus dukungan untuk meluncurkan laporan mutasi dari JUnit runner
0,18
Masalah
Silakan berkonsultasi dengan aturan manajemen masalah kami sebelum membuat atau menangani masalah.
Kredit
Pitest sebagian besar merupakan karya saya, tetapi mendapat manfaat dari kontribusi banyak orang lain.
Kontribusi penting tidak terlihat di sini karena dibuat sebelum kode ini dimigrasikan ke github include
- Nicolas Rusconi - Tugas Semut
- Struan Kerr-Liddell - Perbaikan laporan html
- Stephan Pendorf - Berbagai perbaikan termasuk peningkatan mutator
Meskipun PIT tidak memasukkan kode apa pun dari proyek Jumble (http://jumble.sourceforge.net/), basis kode Jumble digunakan sebagai panduan ketika mengembangkan beberapa aspek PIT.