Mitsuba 3 เป็นระบบการเรนเดอร์ที่เน้นการวิจัยซึ่งพัฒนาขึ้นที่ EPFL โดยนำเสนอความสามารถข้ามแพลตฟอร์มประสิทธิภาพสูงพร้อมการผสานรวม Python และการเรนเดอร์ที่แตกต่าง เอกสารนี้ให้รายละเอียดคุณลักษณะ การติดตั้ง การใช้งาน และเครดิต โดยเน้นถึงความอเนกประสงค์สำหรับงานเรนเดอร์และแอปพลิเคชันการวิจัยต่างๆ มีคำเตือนเกี่ยวกับความไม่เสถียรในปัจจุบันของสาขาหลักด้วย
Pitest (aka PIT) เป็นระบบทดสอบการกลายพันธุ์ที่ทันสมัยสำหรับ Java และ JVM
อ่านทั้งหมดได้ที่ https://pitest.org
ข่าวประชาสัมพันธ์
1.17.2
1.17.1
1.17.0
1.16.3
1.16.2
1.16.1
1.16.0
การเปลี่ยนแปลง Api ใน #1321 นั้นเข้ากันได้แบบย้อนหลัง แต่ปลั๊กอินที่เขียนด้วยเวอร์ชัน 1.16.0 อาจไม่ทำงานกับเวอร์ชันก่อนหน้า
1.15.8
การกรองสำหรับ #1310 จะปิดอยู่ตามค่าเริ่มต้น หากต้องการเปิดใช้งานให้เพิ่มสตริงตัวกรอง +funmodifiablecollection
1309 เพิ่มคุณสมบัติ maven ใหม่ parseSurefireArgLine สิ่งนี้ถูกตั้งค่าเป็นจริงตามค่าเริ่มต้น แต่การแยกวิเคราะห์ argline ของ Surefire สามารถปิดใช้งานได้โดยตั้งค่าเป็นเท็จ
1.15.7
1305 ความครอบคลุมไม่ได้บันทึกไว้สำหรับรหัสในชื่อแพ็คเกจ com.sun*
ตัวกรองที่มีจุดประสงค์เพื่อรับคลาส JDK ดั้งเดิมในแพ็คเกจ "com.sun.*" ไม่มี ' ส่งผลให้ไม่มีการลงทะเบียนรหัสครอบคลุมหากรหัสที่ทดสอบอยู่ในแพ็คเกจที่ขึ้นต้นด้วย "sun"
1.15.6
เรียกใช้การติดตามการโทรแบบไดนามิกสำหรับโค้ดตัวเริ่มต้นแบบคงที่จะถูกนำมาใช้อีกครั้งเมื่อมีการใช้ตรรกะเพิ่มเติมเพื่อระงับการกรองการกลายพันธุ์สำหรับโค้ดการดำเนินการที่ล่าช้า
1.15.5
1.15.4
หมายเหตุ ผู้ใช้ maven ที่ก่อนหน้านี้จำเป็นต้องทำซ้ำพารามิเตอร์ argline ระหว่าง jvmArgs และพารามิเตอร์ argline ของ Surefire และ Pitest อาจจำเป็นต้องใช้
เพื่อปรับการกำหนดค่าเมื่ออัปเกรด รายการที่ส่งให้กับ Surefire จะถูกเพิ่มไปยัง Pitest โดยอัตโนมัติ
1.15.3
1.15.2
1267 จะทำให้แน่ใจว่าข้อผิดพลาดที่ซ่อนอยู่ก่อนหน้านี้ซึ่งพบโดยปลั๊กอิน JUnit5 จะถูกรายงานแล้ว นี่คือการเปลี่ยนแปลง API ที่เข้ากันได้แบบย้อนหลัง จะไม่มีผลจนกว่าปลั๊กอิน JUnit5 จะได้รับการอัปเดตเพื่อใช้ API ที่ขยาย ปลั๊กอินที่อัปเดตจะไม่สามารถใช้งานร่วมกับ pitest เวอร์ชันก่อนหน้าได้
1.15.1
1.15.0
อันเป็นผลมาจากการเปลี่ยนแปลง API ที่แตกหักใน #1251 ทำให้ kotlin โค้ง
ปลั๊กอินควรได้รับการอัปเกรดเป็น 1.1.0 เมื่ออัปเกรดเป็น pitest 1.15.0
1.14.4
1246 จัดลำดับความสำคัญการทดสอบการฆ่าครั้งก่อนเมื่อใช้ไฟล์ประวัติ
1.14.3
1.14.2
1.14.1
1.14.0
1212 แก้ไขปัญหาการรักษาเวอร์ชัน pitest-junit5-plugin ให้ซิงค์กับเวอร์ชัน junit5 สำหรับผู้ใช้ maven อย่างมาก
เมื่อใช้กับ pitest-junit5-plugin 1.2.0 ตอนนี้ pitest จะเลือกเวอร์ชันของ junit-platform-launcher โดยอัตโนมัติ
เข้ากันได้กับเวอร์ชันของ junit5 ที่ใช้โดยระบบภายใต้การทดสอบ
ปัญหายังคงอยู่สำหรับผู้ใช้ gradle ที่อาจยังพบความเข้ากันได้ของ api เมื่อใช้ 1.2.0 ของ pitest-junit5-plugin สิ่งเหล่านี้สามารถทำได้ในขณะนี้
ได้รับการแก้ไขโดยการเพิ่มเวอร์ชันที่ถูกต้องของ junit-platform-launcher ไปยัง classpath ด้วยตนเอง
หวังว่าเวอร์ชันอนาคตของปลั๊กอิน pitest gradle จะใช้การแก้ไขที่คล้ายกับโซลูชัน pitest-maven
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
สถิติความครอบคลุมของบรรทัดที่รายงานบนคอนโซลรวมบรรทัดโค้ดสำหรับทั้งโปรเจ็กต์ แม้ว่าจะใช้ตัวกรองก็ตาม นี้
ส่งผลให้คะแนนความครอบคลุมต่ำมาก
1.11.1
1.11.0
โปรดทราบว่า #1150 มีการเปลี่ยนแปลงอินเทอร์เฟซที่ไม่สมบูรณ์ซึ่งอาจต้องมีการอัปเดตปลั๊กอินของบุคคลที่สาม
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
จาก #1067 สิ่งสำคัญคือต้องสร้างการกลายพันธุ์สำหรับคลาสเดียวสำหรับแต่ละ JVM จุดส่วนขยาย MutationGrouper จึงถูกลบออกเนื่องจากอนุญาตให้มีการละเมิดข้อจำกัดนี้ ไม่รองรับปลั๊กอินของบุคคลที่สามที่ใช้ส่วนขยายนี้อีกต่อไป
การเผยแพร่ยังรวมถึงการเปลี่ยนแปลงโครงสร้างข้อมูลภายในหลายประการ ปลั๊กอินของบุคคลที่สามใดๆ ที่ใช้โครงสร้างเหล่านี้อาจจำเป็นต้องได้รับการอัปเดต
1116 มีวิธีคร่าวๆ ในการยกเว้นโค้ดที่สร้างขึ้นอัตโนมัติซึ่งตัวกรองอื่นๆ ของ Pitest ไม่ได้เลือกไว้ มันถูกปิดใช้งานโดยค่าเริ่มต้น เนื่องจากอาจไม่รวมโค้ดที่ถูกต้องสำหรับการเปลี่ยนแปลงในบางสถานการณ์ แต่สามารถเปิดใช้งานได้โดยการเพิ่มสตริงคุณลักษณะ +nofirstline
1.9.11
1.9.10
1.9.9
1.9.8
เพิ่มการรองรับภาษาต่างๆ เช่น Kotlin ซึ่งไฟล์ต้นฉบับอาจไม่อยู่ในโครงสร้างไดเร็กทอรีที่ตรงกับแพ็คเกจ โปรดทราบว่าหากชื่อไฟล์เดียวกันเกิดขึ้นในมากกว่าหนึ่งตำแหน่ง Pitest ไม่สามารถรับประกันว่าจะแก้ไขไฟล์ที่ถูกต้อง
1.9.7
1.9.6
โปรดทราบว่า #1085 เปลี่ยนพฤติกรรมเริ่มต้น ดังนั้นรายงานจะไม่ถูกเขียนไปยังไดเร็กทอรีที่มีการประทับเวลาตามค่าเริ่มต้นอีกต่อไป หากคุณต้องการให้มีลักษณะการทำงานนี้ คุณจะต้องเปิดใช้งานอย่างชัดเจน
1.9.5
1,078 เป็นการเปลี่ยนแปลงอินเทอร์เฟซที่ไม่สมบูรณ์ แต่รวมอยู่ในการเปิดตัวแบบจุดตามที่เชื่อกันว่ามี
ขณะนี้ไม่มีลูกค้าภายนอก
1.9.4
1.9.3
1,054 ย้ายการสนับสนุนการเพิ่มอัตโนมัติ headless=true (เพื่อป้องกันไม่ให้โฟกัสของแป้นพิมพ์ถูกขโมยบน Mac) ลงในคุณลักษณะ
มันถูกเปิดใช้งานตามค่าเริ่มต้น แต่สามารถปิดการใช้งานได้โดยการเพิ่ม -MACOS_FOCUS ลงในสตริงคุณสมบัติ
1,055 เพิ่มตัวเลือกในการเดาจำนวนเธรดที่เหมาะสมสำหรับเครื่องปัจจุบันโดยการเพิ่ม +auto_threads
สตริงคุณสมบัติ ตัวเลือกนี้ปิดใช้งานตามค่าเริ่มต้นและออกแบบมาเพื่อการใช้งานในท้องถิ่น มันไม่แนะนำ
เพื่อใช้งานบนเซิร์ฟเวอร์ CI
1.9.2
1.9.1
1.9.0
จากผลลัพธ์ของ #1040 ปลั๊กอินทดสอบ pitest ภายนอกใดๆ (เช่น JUnit 5, TestNG, arcmutate accelerator) จะต้องเป็น
อัปเดตเป็นเวอร์ชันที่รองรับ (1.0.0) เมื่ออัปเกรด
ไฟล์ประวัติจากรีลีสก่อนหน้านี้เข้ากันไม่ได้ และควรลบออกเมื่ออัปเกรด
1.8.1
1.8.0
1.7.6
จากผล #1015 ปลั๊กอิน TestNG จะต้องได้รับการกำหนดค่าเมื่อใช้ pitest ในโค้ดเบสที่ทดสอบโดย TestNG ในรุ่นก่อนหน้านี้มีการสนับสนุนรวมอยู่ด้วยโดยอัตโนมัติ
1.7.5
จาก #993 ใครก็ตามที่ต้องการใช้ตัวดำเนินการ RV ที่เน้นการวิจัยจะต้องกำหนดค่าปลั๊กอิน pitest-rv อย่างไรก็ตาม ไม่แนะนำให้ใช้ตัวเปลี่ยนรูปแบบเหล่านี้สำหรับการใช้งานทั่วไป
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
เนื่องจากการเปลี่ยนแปลงภายใน ปลั๊กอินของบุคคลที่สามบางตัวอาจไม่เข้ากันกับรุ่นนี้
ควรลบไฟล์ประวัติทั้งหมดก่อนที่จะอัปเกรด
ชื่อของการกลายพันธุ์แบบมีเงื่อนไขแบบลบมีการเปลี่ยนแปลงเล็กน้อยอันเป็นผลมาจาก #930 และ
อาจจำเป็นต้องอัปเดตในสคริปต์บิลด์หากเปิดใช้งานอย่างชัดเจน
1.6.9
1.6.8
1.6.7
เนื่องจาก #900 พารามิเตอร์ testPlugin จึงใช้งานไม่ได้แล้ว แต่ Pitest จะยังคงยอมรับต่อไปโดยไม่มีข้อผิดพลาดสำหรับรีลีสนี้ Pitest จะใช้เครื่องมือทดสอบใดๆ ที่ให้มาบน classpath โดยจะถอยกลับไปยังการสนับสนุน JUnit4 ในตัว เมื่อกลไกทดสอบอื่นๆ ไม่สามารถจัดการคลาสได้
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
หมายเหตุเมื่ออัปเกรดว่าไฟล์ประวัติที่สร้างจากรุ่นก่อนหน้าเข้ากันไม่ได้กับ 1.3.2 ขึ้นไป
1.3.1
1.3.0
428 เปลี่ยนลักษณะการทำงานที่มีอยู่ของตัวกรอง ExcludedClasses ก่อนหน้านี้คลาสนี้จะไม่รวมคลาสจากทั้งการเปลี่ยนแปลงและเรียกใช้เป็นการทดสอบซึ่งอาจต้องมีการเปลี่ยนแปลงสำหรับบางคนเมื่ออัปเกรด
เนื่องจากการทดสอบ 429 TestNG จะไม่ถูกตรวจพบโดยอัตโนมัติอีกต่อไป - พารามิเตอร์ testPlugin ใหม่จะต้องตั้งค่าอย่างชัดเจนเป็น "testng"
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
(หมายเหตุ #347 จะไม่ตรวจพบ javax.annotaion.Generated เนื่องจากมีการเก็บรักษาแหล่งที่มาเท่านั้น)
1.2.0
หมายเหตุ - ณ เวอร์ชันนี้ ปลั๊กอิน maven จะกำหนดคลาสที่จะกลายพันธุ์โดยอัตโนมัติ แทนที่จะถือว่าชื่อแพ็กเกจตรงกับรหัสกลุ่ม
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
โปรดทราบว่ารุ่นนี้มีปัญหาที่ทราบแล้ว (#231) กรุณาอัพเกรด
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
โปรดทราบว่าไฟล์ประวัติที่เก็บไว้หรือผลลัพธ์โซนาร์จะใช้งานไม่ได้ในรุ่นนี้
1.0.0
0.33
0.32
หมายเหตุ การตั้งค่าสำหรับการเปลี่ยนแปลงโปรเจ็กต์ที่ใช้ Ant ในรุ่นนี้ ดูการตั้งค่ามดสำหรับรายละเอียดการใช้งาน
0.31
รุ่นนี้ยังเปลี่ยนแปลงรายละเอียดการใช้งานภายในจำนวนหนึ่ง ซึ่งบางส่วนอาจเป็นที่สนใจ/สำคัญสำหรับผู้ที่ดูแลรักษาเครื่องมือดังกล่าว
บูรณาการกับ PIT
ขณะนี้การกลายพันธุ์มีการกำหนดขอบเขตภายในตามที่อธิบายไว้ในhttps://groups.google.com/forum/#!topic/pitusers/E0-3QZuMYjE
มีการแนะนำคลาสใหม่ (org.pitest.mutationtest.tooling.EntryPoint) ซึ่งจะลบความซ้ำซ้อนบางส่วนที่มีอยู่ในวิธีต่างๆ ในการเริ่มต้นการวิเคราะห์การกลายพันธุ์
0.30 น
0.29
0.28
ปัญหาที่ทราบ - การแก้ไขสำหรับ #33 อาจไม่แก้ไขปัญหาสำหรับผู้ใช้ maven 2
การตรวจหาโค้ด Groovy ยังไม่ได้รับการทดสอบกับ Groovy 2 ซึ่งอาจสร้างความแตกต่างอย่างมาก
รหัสไบต์เป็นเวอร์ชันก่อนหน้า
0.27
ผู้ใช้ที่อัปเกรดอาจต้องแก้ไขบิลด์ของตนเนื่องจากการลบพารามิเตอร์ inScopeClasses
0.26
ปัญหาที่ทราบ - ตัวเปลี่ยนตัวแปรสมาชิกใหม่อาจทำให้เกิดข้อผิดพลาดในข้อผิดพลาดในการซิงโครไนซ์ มิวเทเตอร์ก็คือ
อย่างไรก็ตาม ปิดการใช้งานโดยค่าเริ่มต้น และข้อผิดพลาดที่สร้างขึ้นได้รับการจัดการอย่างถูกต้องโดย PIT
0.25
0.24
0.23
0.22
0.21
0.20
0.19
0.18
ปัญหา
โปรดศึกษากฎการจัดการปัญหาของเราก่อนที่จะสร้างหรือแก้ไขปัญหา
เครดิต
Pitest ส่วนใหญ่เป็นผลงานของฉันแต่ก็ได้รับประโยชน์จากการมีส่วนร่วมจากคนอื่นๆ อีกมากมาย
การมีส่วนร่วมที่โดดเด่นซึ่งไม่สามารถมองเห็นได้ที่นี่ในขณะที่ถูกสร้างขึ้นก่อนที่รหัสนี้จะถูกย้ายไปยัง GitHub รวมอยู่ด้วย
แม้ว่า PIT จะไม่รวมโค้ดใดๆ จากโปรเจ็กต์ Jumble (http://jumble.sourceforge.net/) แต่โค้ดเบส Jumble ก็ถูกใช้เป็นแนวทางในการพัฒนาบางแง่มุมของ PIT