การครอบคลุมรหัส Delphi เป็นเครื่องมือครอบคลุมรหัสอย่างง่ายสำหรับ Delphi ที่สร้างรายงานการครอบคลุมรหัสตามไฟล์แผนที่โดยละเอียด
โปรดตรวจสอบโครงการนี้เนื่องจากเพิ่มตัวช่วยสร้างให้กับ Delphi IDE เพื่อช่วยสร้างการกำหนดค่าและเรียกใช้ความครอบคลุมรหัส Delphi
โครงการที่คุณต้องการเรียกใช้รายงานการครอบคลุมรหัสสำหรับต้องมีการกำหนดค่า "ดีบั๊ก" ที่สร้างไฟล์แผนที่โดยละเอียด
ปัจจุบันการครอบคลุมรหัส Delphi มีเพียงการวัด "ความครอบคลุมของสาย" เช่นมันจะติดตามแต่ละบรรทัดว่ารหัสนั้นถูกสร้างขึ้นและทำเครื่องหมายว่ามันถูกดำเนินการ
สำหรับแอปพลิเคชันที่ใช้ไลบรารีแพ็คเกจ Borland (ซึ่งเป็น DLLs) หรือ DLL ภายนอก DCC จะพยายามโหลดไฟล์. map สำหรับแต่ละ DLL และหากมีอยู่และหน่วยในห้องสมุดเหล่านั้นเป็นส่วนหนึ่งของหน่วยที่ครอบคลุมการครอบคลุมรหัสจะขยาย DLL/BPL ที่โหลดเป็นส่วนหนึ่งของแอปพลิเคชัน ไฟล์. map จำเป็นต้องมีอยู่ในไดเรกทอรีเดียวกับ DLL ที่โหลด
ดาวน์โหลดรุ่นล่าสุดคลายซิปไฟล์และนำไปใช้ในไดเรกทอรี Delphi การติดตั้ง "bin" ของคุณหรือที่ไหนสักแห่งที่อยู่ใน "เส้นทาง"
พารามิเตอร์ทั้งหมดเข้าใจตัวแปรสภาพแวดล้อมในสไตล์แบตช์ (เช่น % Windir % ฯลฯ ) หากใช้ไฟล์สำหรับไดเรกทอรีต้นฉบับ (ดู -spf ) นอกจากนี้ยังมีตัวแปรสภาพแวดล้อม มันเป็นไปได้ที่จะไม่รวมหน่วยเฉพาะในไฟล์หน่วย (ดู -uf ) โดยการเตรียม "!" ล่วงหน้า "!" ก่อนชื่อหน่วย
เปิดพรอมต์บรรทัดคำสั่งในไดเรกทอรีที่แอปพลิเคชันที่รวบรวมและการเรียกใช้งานของคุณคือ
ประเภท: CodeCoverage -m TestApp.map -e TestApp.exe -u TestUnit TestUnit2 -xml -html
เนื่องจากคุณสมบัติภาษาใหม่ที่ใช้จึงจำเป็นต้องมีคอมไพเลอร์ที่ค่อนข้างใหม่ โครงการนี้เป็นที่รู้จักกันว่าไม่สนับสนุน Delphi XE2 XE3 อาจจะได้ผล การพัฒนาหลักทำด้วยรุ่น 10.x
-html เป็นพารามิเตอร์)สำหรับแต่ละหน่วยจะมีหน่วย. html พร้อมบทสรุปของความครอบคลุมตามด้วยแหล่งที่มาที่ทำเครื่องหมายไว้ สายสีเขียวถูกปกคลุม เส้นสีแดงไม่ได้ครอบคลุมเส้น บรรทัดอื่นไม่มีรหัสสร้างขึ้น นอกจากนี้ยังมีไฟล์ codecoverage_summary.html ที่สรุปความครอบคลุมและมีลิงก์ไปยังรายงานหน่วยที่สร้างขึ้น
-xml เป็นพารามิเตอร์)รายงานสรุป XML ที่เรียกว่า codecoverage_summary.xml ถูกสร้างขึ้นในไดเรกทอรีเอาต์พุตที่เข้ากันได้กับเอาต์พุต XML จาก EMMA ใช้ร่วมกับสวิตช์ '-xmllines' และ '-xmlgenerics' สำหรับการครอบคลุมรหัสโดยละเอียดต่อบรรทัด
-emma หรือ -emma21 เป็นพารามิเตอร์)ตอนนี้เป็นไปได้ที่จะสร้างเอาต์พุตที่เข้ากันได้กับ EMMA ซึ่งช่วยให้การใช้ EMMA รวมการครอบคลุมรหัสหลายรายการทำงานรวมถึงการใช้ EMMA สำหรับการสร้างรายงาน
DCC เข้ากันได้กับ Delphi มากถึง 10.4.2 ทั้ง 32 และ 64 บิต
คุณสามารถรวมผลลัพธ์ของรายงาน XML ใน Sonarqube ดูปลั๊กอิน Delphi Sonarqube หรือรุ่นใหม่ที่นี่สำหรับข้อมูลโดยละเอียด
คุณสามารถรวมรายงาน XML โดยใช้ปลั๊กอิน Hudson Emma รายงาน HTML สามารถรวมเข้าด้วยกันโดยใช้ปลั๊กอิน HTML Publisher
การปล่อยตัวล่าสุดนั้นเกิดขึ้นได้ผ่านการสนับสนุนอย่างใจกว้างของ DevFactory และ Mendrix
โครงการนี้ได้รับแรงบันดาลใจจากเครื่องมือที่ยอดเยี่ยมในโลกชวาเช่นเอ็มม่า โครงการนี้ยังคงอยู่ในรูปแบบที่ยังไม่เสร็จในฮาร์ดไดรฟ์ของฉันมานานกว่าหนึ่งปี ในที่สุดมันก็หลุดออกมา
-m MapFile.map | ไฟล์แผนที่ที่ใช้เป็นอินพุต |
-e Executable.exe | ปฏิบัติการที่ใช้งานได้ |
-sd directory | ไดเรกทอรีที่สามารถพบแหล่งที่มาได้ |
-sp directory directory2 | ไดเรกทอรีที่สามารถพบแหล่งที่มาได้ |
-spf filename | ใช้ไดเรกทอรีต้นฉบับที่แสดงในไฟล์ที่ชี้ไปที่ชื่อไฟล์ หนึ่งไดเรกทอรีต่อบรรทัดในไฟล์ |
-esm mask1 mask2 etc | รายการมาสก์ไฟล์เพื่อแยกออกจากรายการหน่วย |
-ism mask1 mask2 etc | incude เฉพาะหน่วยที่ตรงกับมาสก์ไฟล์ที่ให้ไว้ |
-ecp prefix1 mask2 etc | รายการคำนำหน้าคลาสที่จะแยกออกจากความครอบคลุม |
-od directory | ไดเรกทอรีที่จะใส่ไฟล์เอาต์พุต - หมายเหตุ - ไดเรกทอรีจะต้องมีอยู่ |
-u TestUnit TestUnit2 | หน่วยที่จะต้องตรวจสอบความครอบคลุมของรหัส |
-uf filename | หน่วยครอบคลุมที่แสดงในไฟล์ที่ชี้ไปที่ชื่อไฟล์ หนึ่งหน่วยต่อบรรทัดในไฟล์ |
-v | แสดงเอาต์พุต verbose |
-dproj ProjectFile.dproj | แยกวิเคราะห์ไฟล์โครงการสำหรับแหล่งที่มาชื่อที่ใช้งานได้หน้ารหัสและตัวเลือกอื่น ๆ โปรดทราบว่าตัวเลือกที่อาจมีค่าเดียวเช่นหน้ารหัสจะถูกเขียนทับในลำดับของลักษณะที่ปรากฏหากพบสวิตช์ที่เกี่ยวข้องหลายตัว |
-a Param Param2 | พารามิเตอร์ที่จะส่งต่อไปยังแอปพลิเคชันที่จะต้องตรวจสอบความครอบคลุมของรหัส ^ เป็นตัวละครหลบหนี |
-lt [filename] | บันทึกเหตุการณ์ไปยังไฟล์บันทึกข้อความ ชื่อไฟล์เริ่มต้นคือ: Delphi-Code-coverage-debug.log |
-lapi | บันทึกเหตุการณ์ไปยัง Windows API outputDebugString |
-ife | รวมการขยายไฟล์ - สิ่งนี้จะหยุด "Common.encodings" การ 'แปลง' เป็น "สามัญ" |
-efe | ไม่รวมไฟล์ส่วนขยาย - สิ่งนี้จะ 'แปลง' "Common.encodings.pas" เป็น "Common.encodings" (และน่าเศร้า "Common.encodings" ถึง "Common") สิ่งนี้เป็นค่าเริ่มต้น |
-emma | สร้างเอาต์พุต EMMA ครอบคลุมเป็น 'Coverage.es' ในไดเรกทอรีเอาต์พุต |
-emma21 | สร้างเอาต์พุตความครอบคลุมของ EMMA21 เป็น 'Coverage.es' ในไดเรกทอรีเอาต์พุต |
-meta | สร้างไฟล์เมตาและความครอบคลุมแยกต่างหากเมื่อสร้างเอาต์พุต EMMA - 'Coverage.em' และ 'Coverage.ec' จะถูกสร้างขึ้นสำหรับข้อมูลเมตาและข้อมูลความครอบคลุม หมายเหตุ: ความต้องการ -emma เช่นกัน |
-xml | สร้างเอาต์พุต XML Coverage - สร้างเอาต์พุต XML เป็น 'codecoverage_summary.xml' ในไดเรกทอรีเอาต์พุต |
-xmllines | เพิ่มความครอบคลุมของบรรทัดให้กับเอาต์พุต XML ที่สร้างขึ้น |
-xmlgenerics | รวมการครอบคลุมบรรทัดสำหรับการเกิดขึ้นหลายครั้งของชื่อไฟล์เดียวกัน (โดยเฉพาะอย่างยิ่งมีประโยชน์ในกรณีของคลาสทั่วไป) |
-html | สร้างเอาต์พุต HTML ครอบคลุมเป็น 'codecoverage_summary.html' ในไดเรกทอรีเอาต์พุต |
-uns dll_or_exe unitname [unitname_2] | สร้างเนมสเปซแยกต่างหาก (ชื่อเนมสเปซจะเป็นชื่อของโมดูลที่ไม่มีส่วนขยาย) เฉพาะสำหรับหน่วยที่ระบุไว้ภายในโมดูล |
-mns name dll_or_exe [dll_or_exe_2] | สร้างเนมสเปซแยกต่างหากด้วยชื่อที่กำหนดสำหรับ DLL: s โมดูลทั้งหมดที่โหลดในโมดูลเหล่านั้นจะถูกกำหนด |
-lcl LineCountLimit | จำนวนจำนวนครั้งที่บรรทัดถูกดำเนินการถึงขีด จำกัด ที่ระบุ |
-cp CodePage | หมายเลขหน้ารหัสของไฟล์ต้นฉบับ |
-tec | Passthrough exitcode ของแอปพลิเคชันที่ตรวจสอบ |
-twd | ใช้เส้นทางของแอปพลิเคชันเป็นไดเรกทอรีการทำงาน |
ความครอบคลุมรหัส Delphi ได้รับอนุญาตภายใต้เงื่อนไขของใบอนุญาตสาธารณะ Mozilla, v. 2.0 คุณสามารถรับสำเนาใบอนุญาตได้ที่ http://mozilla.org/mpl/2.0/