ดาวน์โหลดส่วนขยายนี้จาก Visual Studio Market Place ( vs 2019 ), Visual Studio Market Place ( vs 2022 ) หรือดาวน์โหลดจากรุ่นต่างๆ รุ่นเก่าสามารถรับได้จากที่นี่
สำหรับ .Net - อะแดปเตอร์ทดสอบเป็นแพ็คเกจ nuget ตัวอย่างเช่น ส่วนขยาย NUnit Test Adapter ไม่เพียงพอ
Fine Code Coverage มอบการครอบคลุมโค้ดโดยใช้หนึ่งใน 3 เครื่องมือการครอบคลุมที่แตกต่างกัน ในรีลีสก่อนหน้านี้ มีการใช้เครื่องมือความครอบคลุมสองรายการ ได้แก่ OpenCover และ Coverlet ที่จะเรียกว่า 'ความครอบคลุมแบบเก่า'
ขณะนี้ Microsoft มีโซลูชันความครอบคลุมฟรีที่คุณสามารถเลือกใช้ได้โดยการตั้งค่าตัวเลือกการแจงนับ Visual Studio Fine Code Coverage RunMsCodeCoverage นี่อาจเป็นเครื่องมือความครอบคลุมที่ต้องการสำหรับนักพัฒนาส่วนใหญ่ ขณะนี้อยู่ในรุ่นเบต้า
ด้วยความครอบคลุมแบบเก่า FCC จึงสามารถให้ข้อมูลที่เป็นนามธรรมเกี่ยวกับตัวเลือกการยกเว้น/การรวมของแต่ละเครื่องมือได้ นามธรรมนี้ใช้ไม่ได้กับการครอบคลุมโค้ด MS
ดังนั้นคุณจะพบว่ามีตัวเลือกการกำหนดค่าแยกต่างหากสำหรับความครอบคลุมของ Ms เทียบกับความครอบคลุมแบบเก่า และตัวเลือกที่เหมือนกันสำหรับทั้งสอง สามารถบรรลุการยกเว้นและการรวมระดับแอสเซมบลีได้ - ดู ExcludeAssemblies และ IncludedAssemblies การกำหนดค่า (ส่วนใหญ่) กำหนดจากตัวเลือก Visual Studio ไฟล์ finecodecoverage-settings.xml และคุณสมบัติ msbuild ของโครงการ การตั้งค่าทั้งหมดเหล่านี้เป็นทางเลือก สำหรับตัวเลือกที่มีขอบเขตโปรเจ็กต์ การตั้งค่าเหล่านี้จะสร้างลำดับชั้นโดยที่ระดับที่ต่ำกว่าจะแทนที่ หรือสำหรับคอลเลกชัน ให้แทนที่หรือผสานกับระดับที่สูงกว่า นี้จะอธิบายรายละเอียดเพิ่มเติมใน
ไม่ว่าเครื่องมือครอบคลุมที่ใช้กระบวนการจะเริ่มต้นด้วยการที่ FCC ตอบสนองต่อตัวสำรวจการทดสอบในสตูดิโอภาพ เครื่องมือความครอบคลุมหนึ่งใน 3 เครื่องมือจะให้ผลลัพธ์ความครอบคลุมและสามารถเปิดผลลัพธ์ได้จากปุ่มบนหน้าต่างเครื่องมือ Fine Code Coverage ความครอบคลุมนี้ไม่ใช่แบบไดนามิกและแสดงถึงความครอบคลุมที่ได้รับจากครั้งล่าสุดที่คุณดำเนินการทดสอบ เมื่อความครอบคลุมล้าสมัย คุณสามารถคลิกปุ่ม 'FCC Clear UI' ในเครื่องมือหรือเรียกใช้ความครอบคลุมอีกครั้งได้
รายละเอียดเกี่ยวกับความคืบหน้าของ FCC ในเรื่องการครอบคลุมโค้ดสามารถพบได้ในแท็บบันทึกความครอบคลุมในหน้าต่างเครื่องมือการครอบคลุมโค้ดแบบละเอียด พร้อมบันทึกที่มีรายละเอียดเพิ่มเติมในบานหน้าต่างหน้าต่างเอาท์พุตของ FCC หากคุณประสบปัญหา การระบุบันทึกจากหน้าต่างเอาท์พุตจะช่วยให้เข้าใจลักษณะของปัญหาได้
นำเสนอรายงานแบบรวมเป็นหนึ่งเดียวในหน้าต่าง Fine Code Coverage Tool รายงานจะแสดงความครอบคลุมของสายและสาขาและฮอตสปอตความเสี่ยงพร้อมความสามารถในการเปิดไฟล์ของชั้นเรียนของคุณ
ขอบสีเพื่อระบุสถานะความครอบคลุมของโค้ดของคุณ Instrumented (รวมและวิเคราะห์ได้) บรรทัดของโค้ดถูกครอบคลุม ไม่เปิดเผย หรือครอบคลุมบางส่วน ซึ่งหมายความว่าไม่ใช่ทุกสาขาที่ถูกดำเนินการ
FCC จัดเตรียมแนวคิดเกี่ยวกับขอบเขตที่สกปรก ซึ่งโค้ดที่ติดตั้งไว้ก่อนหน้านี้จะไม่แสดงสถานะการติดตั้งอีกต่อไปเมื่อคุณเปลี่ยนโค้ดแล้ว
สำหรับ C# และ Visual Basic ให้ข้อมูลความครอบคลุมเพิ่มเติม:
FCC ยังช่วยให้คุณเห็นโค้ดที่ไม่รวมอยู่ในความครอบคลุมและบรรทัดใหม่ที่เพิ่มเข้ามาตั้งแต่การดำเนินการครอบคลุมครั้งล่าสุด
ต้องเปิดทั้งการระบายสีเส้นสกปรกและเส้นใหม่ในตัวเลือก
หากต้องการ คุณสามารถเน้นเส้นด้วยการตั้งค่าตัวเลือก Visual Studio ที่พร้อมใช้งาน อ่านต่อเพื่อดูรายละเอียดเพิ่มเติม
สามารถควบคุมสีได้ผ่าน Visual Studio / เครื่องมือ / ตัวเลือก / สภาพแวดล้อม / แบบอักษรและสี / โปรแกรมแก้ไขข้อความ / รายการแสดงผล:
สำหรับ Visual Studio Community, Professional และ Enterprise คุณสามารถใช้การตั้งค่าได้
ความครอบคลุมพื้นที่สัมผัส FCC
ความครอบคลุมพื้นที่สัมผัสบางส่วน FCC
พื้นที่ครอบคลุมที่ไม่ได้สัมผัส FCC
ครอบคลุมพื้นที่สกปรก FCC
ครอบคลุมพื้นที่เส้นทางใหม่ FCC
ความคุ้มครองไม่รวมพื้นที่ FCC
สำหรับเวอร์ชันที่มีรายการด้านล่าง FCC จะใช้สิ่งเหล่านี้เป็นค่าเริ่มต้นเหนือรายการ FCC ที่เทียบเท่า เพื่อให้สามารถใช้สีที่กำหนดในธีมได้ หากคุณต้องการให้รายการที่มีอยู่ 5 รายการสอดคล้องกัน คุณสามารถตั้งค่า UseEnterpriseFontsAndColors เป็น false ได้
ความคุ้มครองพื้นที่ไม่สัมผัส
ครอบคลุมพื้นที่สัมผัสบางส่วน
ครอบคลุมพื้นที่สัมผัส
คุณสามารถปิดการระบายสีของตัวแก้ไขได้โดยการตั้งค่าตัวเลือก Visual Studio EditorCoverageColouringMode เป็นปิด คุณยังสามารถตั้งค่าตัวเลือกเป็น DoNotUseRoslynWhenTextChanges ได้หากมีปัญหาด้านประสิทธิภาพ การทำเช่นนั้นการระบายสีเส้นใหม่จะไม่ดีเท่าที่ควร หากคุณเปลี่ยนไปใช้ตัวเลือก EditorCoverageColouringMode ตัวใดตัวหนึ่ง คุณจะต้องเรียกใช้การครอบคลุมอีกครั้ง
คุณสามารถสลับการระบายสีของตัวแก้ไขได้ FCC เพิ่มปุ่มเมนู Toggle Indicators ในเมนูเครื่องมือ คุณยังสามารถสร้างแป้นพิมพ์ลัด - เครื่องมือ / ตัวเลือก / สภาพแวดล้อม / แป้นพิมพ์ แสดงคำสั่งที่มี "ToggleIndicators"
สำหรับส่วนประกอบของ Blazor ที่มี @code บล็อกบรรทัดความครอบคลุมสามารถสร้างได้นอกภูมิภาคเหล่านี้ เมื่อแผนผังไวยากรณ์ของ Roslyn พร้อมใช้งานสำหรับ FCC คุณสามารถตั้งค่าตัวเลือก BlazorCoverageLinesFromGeneratedSource ให้เป็นจริงเพื่อจำกัดบรรทัดความครอบคลุมในไฟล์ .razor ไว้เฉพาะในแหล่งที่มาที่สร้างขึ้น
FCC ติดตามโปรแกรมแก้ไข Visual Studio และบันทึกข้อมูลนี้เมื่อไฟล์ถูกปิด หากเมื่อเปิดไฟล์อีกครั้ง ข้อความมีการเปลี่ยนแปลงนอกหน้าต่างเอกสาร จะไม่มีเครื่องหมายความครอบคลุมสำหรับไฟล์นี้ เนื่องจากเส้นความครอบคลุมไม่คาดว่าจะถูกต้องอีกต่อไป
จะไม่มีเครื่องหมายตัวแก้ไขหากคุณแก้ไขไฟล์ในขณะที่ FCC กำลังรวบรวมความคุ้มครอง
ด้วยความครอบคลุมแบบเก่าที่ FCC จำเป็นในการคัดลอก dll ทดสอบและการอ้างอิงของคุณ และเรียกใช้ OpenCover หรือ Coverlet กับไฟล์เหล่านั้น สิ่งนี้ไม่จำเป็นสำหรับการครอบคลุมโค้ด ms ความครอบคลุมแบบเก่าจะรอจนกว่าการทดสอบจะเสร็จสิ้นก่อนที่จะเริ่มเครื่องมือความครอบคลุมเพื่อทำการทดสอบทั้งหมดอีกครั้ง สิ่งนี้ไม่จำเป็นสำหรับการครอบคลุมโค้ด ms ความคุ้มครองแบบเก่าอิงตามการทดสอบทุกครั้ง การครอบคลุมโค้ด Ms คือความครอบคลุมจากการทดสอบที่คุณเลือกในตัวสำรวจการทดสอบ
รองรับ C++! โปรดทราบว่า FCC ยังไม่ได้รับการทดสอบอย่างถูกต้องกับโปรเจ็กต์ C++ แต่ด้วยคลาส C++ แบบธรรมดาที่ทดสอบด้วย Google Test นั้น FCC ให้ความครอบคลุม
ก่อนอื่นคุณต้องเปลี่ยนตัวเลือก RunMsCodeCoverage จาก No.
ความครอบคลุมของรหัส Ms จำเป็นต้องมีไฟล์การตั้งค่าการทำงานที่ได้รับการกำหนดค่าอย่างเหมาะสมสำหรับความครอบคลุมของรหัส สิ่งนี้กำหนดให้คุณต้องมีแพ็คเกจการครอบคลุมรหัส ms และชี้ไปยังแพ็คเกจนั้นด้วยองค์ประกอบ TestAdaptersPaths รวมถึงการระบุตัวรวบรวมข้อมูล ms การยกเว้นและการรวมยังระบุไว้ในการตั้งค่ารันด้วย ฉันไม่คิดว่าเอกสารประกอบมีความชัดเจนเพียงพอเกี่ยวกับวิธีการทำงาน ดังนั้นคุณอาจต้องการดูปัญหานี้
FCC ไม่ต้องการให้คุณทำเช่นนี้ หากคุณไม่ได้ระบุการตั้งค่าการรันและ RunMsCodeCoverage เป็นใช่ FCC จะสร้างขึ้นมาและเขียนรายการที่จำเป็นในไฟล์โปรเจ็กต์
โปรดทราบว่าการเปิดไฟล์โครงการทดสอบใน Visual Studio ในขณะที่ทำการทดสอบอาจส่งผลให้เกิดคำเตือนข้อขัดแย้งเมื่อ FCC ลบรายการเมื่อสิ้นสุดการทดสอบ หาก RunMsCodeCoverage เป็น IfInRunSettings ดังนั้นหากโปรเจ็กต์มีการตั้งค่าการรันที่มีองค์ประกอบตัวรวบรวมข้อมูล ms ที่กำหนดค่าอย่างถูกต้อง FCC จะประมวลผลผลลัพธ์ที่รวบรวม
FCC รวมแพ็คเกจการครอบคลุมรหัส ms และจะสร้างไฟล์การตั้งค่าการรันที่จำเป็นสำหรับโครงการทดสอบแต่ละโครงการที่เรียกใช้จากหน้าต่าง explorer ทดสอบ การยกเว้นและการรวมจะมาจากการตั้งค่าแบบรวม ในลักษณะเดียวกันกับความคุ้มครองแบบเก่า เนื่องจากการครอบคลุมโค้ด ms ใช้ regex และมีวิธีการแยก / รวมไปยัง Coverlet และ OpenCover ที่แตกต่างกัน จึงมีตัวเลือก Visual Studio เฉพาะของ ms และองค์ประกอบที่เกี่ยวข้อง
เนื่องจาก FCC จัดเตรียมไฟล์การตั้งค่ารันสำหรับโปรเจ็กต์ทดสอบแต่ละโปรเจ็กต์ (หากคุณไม่ได้จัดเตรียมโซลูชันให้กว้างหรือเฉพาะโปรเจ็กต์) จึงต้องเขียนองค์ประกอบ RunSettingsFilePath ในไฟล์โปรเจ็กต์
แม้ว่า FCC จะล้างค่าขององค์ประกอบนี้ออกจากไฟล์โครงการ แต่ก็ยังคงปรากฏอยู่
FCC สร้างการตั้งค่ารันจากเทมเพลตโดยใช้การแทนที่สตริง หากต้องการ คุณสามารถจัดเตรียมเทมเพลตของคุณเองได้ FCC จะค้นหา fcc-ms-runsettings-template.xml ในไดเร็กทอรีโปรเจ็กต์หรือไดเร็กทอรีโซลูชัน เทมเพลตของคุณต้องเป็นเอกสาร xml ที่ถูกต้อง แต่ไม่จำเป็นต้องระบุองค์ประกอบการตั้งค่าการรันทั้งหมด FCC จะเพิ่มองค์ประกอบ ResultsDirectory และ TestAdaptersPaths ที่เปลี่ยนได้ (และองค์ประกอบ RunConfiguration ของคอนเทนเนอร์หากจำเป็น) หากไม่มีอยู่ FCC จะเพิ่มองค์ประกอบที่สามารถเปลี่ยนได้ของ ms DataCollector / Configuration / CodeCoverage หากไม่มีอยู่ นอกจากนี้ยังจะเพิ่มองค์ประกอบ CodeCoverage ที่แนะนำแบบไม่แยก/รวม AllowLowIntegrityProcesses, CollectFromChildProcesses, CollectAspDotNet และ UseVerifiableInstrumentation หากไม่ได้ระบุไว้ UseVerifiableInstrumentation จะเป็นเท็จสำหรับ .Net Framework หากต้องการดูการตั้งค่าการรันที่สร้างขึ้น ให้ใช้องค์ประกอบ RunSettingsFilePath ในไฟล์โปรเจ็กต์
สำหรับเทมเพลตแบบกำหนดเองที่มีองค์ประกอบของตัวเองซึ่งอาจมีให้โดย FCC หากต้องการมีส่วนร่วมในการแทนที่เทมเพลต คุณต้องเพิ่มสตริงประเภท %fcc_replace%
ไม่รวมและรวมเป็นไปตามรูปแบบ "%fcc_modulepaths_exclude%" เพื่อให้ FCC จัดหาเส้นทางการครอบคลุมโค้ด ms ที่ fcc มอบให้ไปยัง TestAdaptersPaths ให้ใช้ %fcc_testadapter%
นอกจากนี้คุณยังสามารถใช้ไฟล์ runettings ของคุณเองและให้ FCC เพิ่มและแทนที่ได้ FCC จะตรวจสอบให้แน่ใจว่ามีองค์ประกอบ TestAdaptersPaths เช่นเดียวกับตัวรวบรวมข้อมูล ms ไม่เหมือนกับเทมเพลต หากมีตัวรวบรวมข้อมูล ms อยู่ xml จะมีการแทนที่เท่านั้นที่ใช้กับตัวรวบรวมข้อมูลนั้น
การครอบคลุมโค้ด Ms จะให้องค์ประกอบการกำหนดค่า / CodeCoverage เริ่มต้น หากไม่มีให้ไว้ นอกจากนี้ยังจะเพิ่มการยกเว้นเริ่มต้นบางส่วนหากไม่มีอยู่หรือรวมเข้าด้วยกัน เว้นแต่คุณจะเพิ่มแอตทริบิวต์ mergeDefaults='false' ตัวอย่างเช่นแอตทริบิวต์ไม่รวม ExcludeFromCodeCoverageAttribute หากคุณสนใจ โปรดดู ...AppDataLocalFineCodeCoveragemsCodeCoverage_version_buildnetstandard1.0Microsoft.VisualStudio.TraceDataCollector.dll และ DynamicCoverageDataCollector
โปรดตรวจสอบการแก้ไขปัญหาก่อนที่จะรายงานปัญหา
ที่กำลังจะถูกคัดลอกไปยังโฟลเดอร์ย่อยของโฟลเดอร์ผลลัพธ์โครงการซึ่งอาจส่งผลต่อการทดสอบของคุณ อีกทางเลือกหนึ่งคือการตั้งค่าตัวเลือก AdjacentBuildOutput ให้เป็นจริง ความครอบคลุมนี้จัดทำโดย OpenCover สำหรับโปรเจ็กต์รูปแบบเก่าและ Coverlet สำหรับโปรเจ็กต์ SDK รูปแบบใหม่ แม้ว่า FCC จะให้สิ่งที่เป็นนามธรรมเหนือทั้งสองอย่าง ดังนั้นจึงเป็นไปได้ที่จะเพิกเฉยต่อความแตกต่างระหว่างทั้งสอง แต่มีสถานการณ์ที่สิ่งสำคัญคือต้องระวังเครื่องมือหน้าปกที่จะใช้งาน สิ่งนี้จะชัดเจนที่สุดเมื่อใช้ Coverlet โปรดอ่านต่อเพื่อดูข้อมูลเฉพาะ
อีกสถานการณ์หนึ่งคือเมื่อคุณต้องการใช้เครื่องมือความครอบคลุมเวอร์ชันเฉพาะ นี้สามารถกำหนดค่าได้
เครื่องมือความครอบคลุมที่ FCC ใช้ประโยชน์จะถูกติดตั้งไว้ในไดเร็กทอรี FineCodeCoverage ภายใน Environment.SpecialFolder.LocalApplicationData
ตามค่าเริ่มต้น สิ่งนี้สามารถเปลี่ยนแปลงได้ด้วยตัวเลือก ToolsDirectory Visual Studio ตรวจสอบให้แน่ใจว่าไดเร็กทอรีนี้มีอยู่ และเมื่อรีสตาร์ท เครื่องมือจะถูกติดตั้งภายใน
เรียกใช้การทดสอบหน่วย (บางส่วน) และ ...
ลำดับชั้นมีดังนี้:
ก) ตัวเลือก Visual Studio
b) ไฟล์ finecodecoverage-settings.xml
สิ่งเหล่านี้พบได้โดยการเดินขึ้นไปตามโครงสร้างไดเร็กทอรีจากไดเร็กทอรีโปรเจ็กต์ โดยการใช้แอตทริบิวต์ topLevel='true' กับองค์ประกอบราก การเดินจะหยุดลง
กำหนด finecodecoverage-settings.xml ในไดเร็กทอรีโปรเจ็กต์ และ finecodecoverage-settings.xml ในไดเร็กทอรีโซลูชัน ลำดับชั้นคือ:
ตัวเลือก Visual Studio
ระดับโซลูชัน finecodecoverage-settings.xml
ระดับโปรเจ็กต์ finecodecoverage-settings.xml
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
c) ไฟล์โครงการ msbuild
มีสองวิธีในการจัดหาการตั้งค่าเหล่านี้ โดยตรงในไฟล์โครงการ
<PropertyGroup Label="FineCodeCoverage">
<Enabled>
True
</Enabled>
<Exclude>
[ThirdParty.*]*
[FourthParty]*
</Exclude>
<Include>
[*]*
</Include>
<ExcludeByFile>
**/Migrations/*
**/Hacks/*.cs
</ExcludeByFile>
<ExcludeByAttribute>
MyCustomExcludeFromCodeCoverage
</ExcludeByAttribute>
<IncludeTestAssembly>
True
</IncludeTestAssembly>
<ModulePathsExclude>
.*Fabrikam.Math.UnitTest.dll
</ModulePathsExclude>
<!-- and more -->
</PropertyGroup>
ด้วยองค์ประกอบ FineCodeCoverage
<PropertyGroup>
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
</PropertyGroup>
นี่เป็น สิ่งจำเป็น หากจัดเก็บการตั้งค่าโปรเจ็กต์ไว้นอกไฟล์โปรเจ็กต์ของคุณและใช้ msbuild Import
นอกจากนี้ยัง จำเป็นหาก คุณต้องการให้องค์ประกอบการตั้งค่าผสานกับองค์ประกอบจากระดับด้านบนเนื่องจาก msbuild ไม่รองรับแอตทริบิวต์ที่กำหนดเอง
ค่าเริ่มต้นคือการเขียนทับคุณสมบัติคอลเลกชันแต่ละรายการ สิ่งนี้สามารถเปลี่ยนแปลงได้สำหรับการตั้งค่าทั้งหมดโดยการตั้งค่า defaultMerge='true' บนองค์ประกอบรูท
หากคุณระบุแอตทริบิวต์ผสานในองค์ประกอบการตั้งค่าก็จะถูกนำมาใช้
นี่ไม่ใช่สกรรมกริยา
<PropertyGroup>
<FCCExcludeFromCodeCoverage/>
</PropertyGroup>
<PropertyGroup>
<UseDataCollector/>
</PropertyGroup>
Coverlet มี "ไดรเวอร์" ที่แตกต่างกัน Fine Code Coverage ในอดีตใช้เฉพาะไดรเวอร์คอนโซล Coverlet เท่านั้น นี่มีปัญหาบางอย่างที่เกี่ยวข้อง หากคุณพบ ความครอบคลุม 0% หรือความครอบคลุมที่ไม่สอดคล้องกัน ตอนนี้คุณสามารถสลับไปใช้ไดรเวอร์ Data Collector ได้ นี่เป็นไดรเวอร์ที่ดีกว่า แต่ไม่สามารถใช้กับทุกโปรเจ็กต์ได้ ในตอนนี้ ตัวเลือกนี้ใช้ได้แล้ว ในอนาคต Fine Code Coverage จะเป็นตัวกำหนดไดรเวอร์ที่เหมาะสม โปรดปรึกษาเอกสาร coverlet เพื่อรับการสนับสนุนเวอร์ชัน
โปรดทราบว่าไม่จำเป็นต้องเพิ่มแพ็คเกจ nuget coverlet.collector เนื่องจาก FCC จัดหาแพ็คเกจภายใน
Fine Code Coverage จะใช้ไดรเวอร์ Data Collector ภายใต้สองสถานการณ์:
สามารถดูการตั้งค่าตัวรวบรวมข้อมูล Coverlet ได้ที่นี่ หากคุณใช้ตัวเลือก 2) ข้างต้น การตั้งค่าทั่วไป ( Exclusions and inclusions ) จะถูกสร้างขึ้นจากคุณสมบัติของโปรเจ็กต์ (ด้านบน ) และตัวเลือก Visual Studio ทั่วโลก (ดูด้านล่าง ) โดยคุณสมบัติของโปรเจ็กต์จะมีความสำคัญกว่า หากคุณใช้ตัวเลือกที่ 1) ดังนั้นโปรเจ็กต์และตัวเลือกส่วนกลางจะถูกใช้เฉพาะในกรณีที่ไม่มีองค์ประกอบการกำหนดค่าการตั้งค่าทั่วไป และตัวเลือก RunSettingsOnly (ดูด้านล่าง) ถูกเปลี่ยนเป็นเท็จ
ตัวเลือก | คำอธิบาย |
---|---|
ทั่วไป | |
ตัวแก้ไขความครอบคลุมโหมดสี | ตั้งค่าเป็นปิด หรือตั้งค่าเป็น DoNotUseRoslynWhenTextChanges หากมีปัญหาด้านประสิทธิภาพ |
BlazorCoverageLinesFromGeneratedSource | ตั้งค่าเป็นจริงเพื่อจำกัดขอบเขตความครอบคลุมในไฟล์ .razor ไว้เฉพาะในแหล่งที่มาที่สร้างขึ้น (ถ้ามี) |
แสดงความครอบคลุมของบรรณาธิการ | ตั้งค่าเป็นเท็จเพื่อปิดใช้งานตัวบ่งชี้ความครอบคลุมของตัวแก้ไขทั้งหมด |
แสดงความคุ้มครองInGlyphMargin | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายครอบคลุมในระยะขอบสัญลักษณ์ |
แสดง CoveredInGlyphMargin | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายที่ถูกปกคลุมในระยะสัญลักษณ์ |
แสดง UncoveredInGlyphMargin | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายที่ถูกเปิดเผยในระยะขอบสัญลักษณ์ |
แสดง PartiallyCoveredInGlyphMargin | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายที่ถูกปกคลุมบางส่วนในระยะขอบสัญลักษณ์ |
ShowDirtyInGlyphMargin | ตั้งค่าเป็นจริงเพื่อแสดงเครื่องหมายสกปรกในระยะขอบสัญลักษณ์ |
ShowNewInGlyphMargin | ตั้งค่าเป็นจริงเพื่อแสดงเครื่องหมายบรรทัดใหม่ในระยะขอบสัญลักษณ์ |
แสดงความครอบคลุมในภาพรวมมาร์จิ้น | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายความครอบคลุมในระยะขอบภาพรวม |
แสดง CoveredInOverviewMargin | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายที่ครอบคลุมในระยะขอบภาพรวม |
แสดง UncoveredInOverviewMargin | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายที่ถูกเปิดเผยในระยะขอบภาพรวม |
แสดง Partially CoveredInOverviewMargin | ตั้งค่าเป็นเท็จเพื่อป้องกันเครื่องหมายที่ถูกปกคลุมบางส่วนในระยะขอบภาพรวม |
ShowDirtyInOverviewMargin | ตั้งค่าเป็นจริงเพื่อแสดงเครื่องหมายสกปรกในระยะขอบภาพรวม |
ShowNewInOverviewMargin | ตั้งค่าเป็นจริงเพื่อแสดงเครื่องหมายบรรทัดใหม่ในระยะขอบภาพรวม |
ShowLineCoverageการเน้นย้ำ | ตั้งค่าเป็นจริงเพื่อให้สามารถเน้นเส้นครอบคลุมได้ |
ShowLineCoveredเน้น | ตั้งค่าเป็นเท็จเพื่อป้องกันการเน้นเส้นที่ปกคลุม |
ShowLineUncoveredไฮไลท์ | ตั้งค่าเป็นเท็จเพื่อป้องกันไม่ให้มีการเน้นบรรทัด |
ShowLinePartiallyCoveredHighlighting | ตั้งค่าเป็นเท็จเพื่อป้องกันการเน้นบรรทัดที่ถูกปกปิดบางส่วน |
ShowLineDirtyไฮไลท์ | ตั้งค่าเป็นจริงเพื่อแสดงการเน้นเส้นสกปรก |
ShowLineNewไฮไลท์ | ตั้งค่าเป็นจริงเพื่อแสดงการเน้นบรรทัดใหม่ |
ใช้EnterpriseFontsAndColors | ตั้งค่าเป็นเท็จเพื่อใช้รายการแบบอักษรและสีของ FCC |
ShowToolWindowToolbar | ตั้งค่าเป็นเท็จเพื่อซ่อนแถบเครื่องมือในหน้าต่างเครื่องมือ ต้องรีสตาร์ท Visual Studio แถบเครื่องมือมีปุ่มสำหรับดู Cobertura xml และฮอตสปอตความเสี่ยง |
ชื่อไดเร็กทอรีเอาต์พุตโซลูชัน FCC | หากต้องการให้มองเห็นเอาต์พุต fcc ในโฟลเดอร์ย่อยของโซลูชันของคุณ ให้ระบุชื่อนี้ |
ไดเรกทอรีเครื่องมือ | โฟลเดอร์ที่โฟลเดอร์ย่อยของเครื่องมือคัดลอก ต้องมีอยู่แล้ว. ต้องรีสตาร์ท VS |
ThresholdForCyclomaticComplexity | เมื่อความซับซ้อนของไซโคลมาติกเกินค่านี้สำหรับวิธีการ วิธีการนั้นจะปรากฏในแท็บฮอตสปอตความเสี่ยง |
StickyCoverageTable | ตั้งค่าเป็นจริงเพื่อให้ตารางความครอบคลุมมีส่วนหัวแบบติดหนึบ |
เนมสเปซคลาส | ตั้งค่าเป็นเท็จเพื่อแสดงประเภทในรายงานในรูปแบบย่อ ส่งผลกระทบต่อการรวมกลุ่ม |
เนมสเปซคุณสมบัติ | ควบคุมคุณสมบัติของประเภทในรายงานเมื่อ NamespacedClasses เป็นจริง มีคุณสมบัติครบถ้วน - มีคุณสมบัติครบถ้วนเสมอ AlwaysUnqualified - ไม่มีคุณสมบัติเสมอ UnqualifiedByNamespace - ไม่ผ่านการรับรองเมื่อจัดกลุ่มตามเนมสเปซ QualifiedByNamespaceLevel - ละเว้นส่วนตัวระบุระดับการจัดกลุ่มแรก ลดพื้นที่ในขณะที่ยังคงรักษาเอกลักษณ์ |
ซ่อนปกปิดทั้งหมด | ตั้งค่าเป็นจริงเพื่อซ่อนคลาส เนมสเปซ และแอสเซมบลีที่ครอบคลุมทั้งหมด |
ซ่อน0ความคุ้มครอง | ตั้งค่าเป็นจริงเพื่อซ่อนคลาส เนมสเปซ และแอสเซมบลีที่มีความครอบคลุม 0% |
Hide0Coverable | ตั้งค่าเป็นเท็จเพื่อแสดงคลาส เนมสเปซ และแอสเซมบลีที่ไม่สามารถครอบคลุมได้ |
เปิดใช้งานแล้ว | ระบุว่าจะเปิดใช้งานเอาต์พุตความครอบคลุมหรือไม่ |
ปิดการใช้งานไม่มีความคุ้มครอง | ตั้งค่าเป็นเท็จสำหรับ VS Option Enabled=false เพื่อไม่ปิดใช้งานการครอบคลุม |
RunWhenTestsFail | ตามค่าเริ่มต้น ความครอบคลุมจะทำงานเมื่อการทดสอบล้มเหลว ตั้งค่าเป็นเท็จเพื่อป้องกันสิ่งนี้ ไม่สามารถใช้ร่วมกับ RunInParallel ได้ |
เรียกใช้เมื่อการทดสอบเกิน | ระบุค่าเพื่อเรียกใช้ความครอบคลุมเท่านั้นตามจำนวนการทดสอบที่ดำเนินการ ไม่สามารถใช้ร่วมกับ RunInParallel ได้ |
RunMsCodeCoverage | เปลี่ยนเป็น IfInRunSettings เพื่อรวบรวมเฉพาะกับการตั้งค่าการรันที่กำหนดค่าไว้เท่านั้น ใช่สำหรับการสร้างการตั้งค่ารัน |
รวมชุดทดสอบ | ระบุว่าจะรายงานการครอบคลุมรหัสของชุดทดสอบหรือไม่ |
รวมโครงการอ้างอิง | ตั้งค่าเป็นจริงเพื่อเพิ่มโปรเจ็กต์ที่อ้างอิงโดยตรงทั้งหมดเพื่อรวม |
รวมชุดประกอบ | จัดทำรายการชุดประกอบที่จะรวมไว้ในความคุ้มครอง ชื่อ dll ที่ไม่มีนามสกุลใช้สำหรับการจับคู่ |
ไม่รวมชุดประกอบ | จัดทำรายการชุดประกอบที่จะแยกออกจากความคุ้มครอง ชื่อ dll ที่ไม่มีนามสกุลใช้สำหรับการจับคู่ |
OpenCover / ผ้าคลุมเตียง | |
ที่อยู่ติดกันBuildOutput | หากการทดสอบของคุณขึ้นอยู่กับเส้นทาง ให้ตั้งค่านี้เป็นจริง |
ไม่รวม | กรองนิพจน์เพื่อแยกโมดูลและประเภทเฉพาะ (หลายค่า) |
รวม | กรองนิพจน์เพื่อรวมโมดูลและประเภทเฉพาะ (หลายค่า) |
ExcludeByFile | OpenCover ใช้ * การจับคู่ไวด์การ์ด Coverlet ใช้ระบบไฟล์แบบ globbing |
ExcludeByAttribute | แยกรหัสประกอบที่ระดับแอสเซมบลี ประเภท และวิธี เพิ่มประเภทแอตทริบิวต์ที่มีคุณสมบัติครบถ้วนหรือไม่มีคุณสมบัติครบถ้วน |
เรียกใช้แบบขนาน | ตามค่าเริ่มต้น การทดสอบ OpenCover / Coverlet จะดำเนินการ จากนั้นจึงดำเนินการครอบคลุม ตั้งค่าเป็นจริงเพื่อเรียกใช้ความครอบคลุมทันที |
ความคุ้มครองรหัสนางสาว | แต่ละด้านล่างนี้คืออาร์เรย์ของ regexes ที่จะแปลงเป็นองค์ประกอบการตั้งค่าการทำงาน ดู |
ModulePathsExclude | ไม่รวม - จับคู่แอสเซมบลีที่ระบุโดยชื่อแอสเซมบลีหรือเส้นทางไฟล์ |
ModulePathsInclude | รวม - จับคู่แอสเซมบลีที่ระบุโดยชื่อแอสเซมบลีหรือเส้นทางไฟล์ |
ชื่อบริษัทไม่รวม | ไม่รวม - จับคู่ชุดประกอบตามคุณลักษณะของบริษัท |
ชื่อบริษัทรวม | รวม - จับคู่ชุดประกอบตามแอตทริบิวต์บริษัท |
PublicKeyTokens ไม่รวม | ไม่รวม - จับคู่แอสเซมบลีที่ลงนามโดยโทเค็นคีย์สาธารณะ |
รวม PublicKeyTokens | รวม - จับคู่แอสเซมบลีที่ลงนามโดยโทเค็นคีย์สาธารณะ |
แหล่งที่มาไม่รวม | ยกเว้น - จับคู่องค์ประกอบตามชื่อเส้นทางของไฟล์ต้นฉบับที่องค์ประกอบเหล่านั้นถูกกำหนดไว้ |
แหล่งที่มารวม | รวม - จับคู่องค์ประกอบตามชื่อเส้นทางของไฟล์ต้นฉบับที่องค์ประกอบเหล่านั้นถูกกำหนดไว้ |
คุณสมบัติไม่รวม | ไม่รวม - จับคู่องค์ประกอบที่มีแอตทริบิวต์ที่ระบุ ระบุชื่อเต็มของแอตทริบิวต์ |
คุณสมบัติรวม | รวม - จับคู่องค์ประกอบที่มีแอตทริบิวต์ที่ระบุ ระบุชื่อเต็มของแอตทริบิวต์ |
ฟังก์ชั่นยกเว้น | ไม่รวม - จับคู่ขั้นตอน ฟังก์ชัน หรือเมธอดตามชื่อแบบเต็ม รวมถึงรายการพารามิเตอร์ |
ฟังก์ชั่นรวม | รวม - จับคู่ขั้นตอน ฟังก์ชัน หรือวิธีการตามชื่อแบบเต็ม รวมถึงรายการพารามิเตอร์ |
ผ้าคลุมเตียง | |
เรียกใช้การตั้งค่าเท่านั้น | ระบุ false สำหรับอ็อพชันโกลบอลและโปรเจ็กต์ที่จะใช้สำหรับอิลิเมนต์คอนฟิกูเรชันตัวรวบรวมข้อมูล coverlet เมื่อไม่ได้ระบุในการตั้งค่าการรัน |
CoverletCollectorDirectoryPath | ระบุพาธไปยังไดเร็กทอรีที่มีไฟล์ตัวรวบรวม Coverlet หากคุณต้องการฟังก์ชันการทำงานที่เวอร์ชัน FCC ไม่มีให้ |
CoverletConsoleLocal | ระบุเป็นจริงเพื่อใช้ dotnet tools ของคุณเองในการติดตั้งคอนโซล Coverlet |
CoverletConsoleCustomPath | ระบุเส้นทางไปยัง exe คอนโซล Coverlet หากคุณต้องการฟังก์ชันการทำงานที่เวอร์ชัน FCC ไม่มีให้ |
CoverletConsoleGlobal | ระบุ true เพื่อใช้เครื่องมือ dotnet ของคุณเองในการติดตั้งคอนโซล Coverlet ทั่วโลก |
การตั้งค่า "CoverletConsole" มีความสำคัญเหนือกว่า Local / CustomPath / Global | |
OpenCover | |
OpenCoverลงทะเบียน | เปลี่ยนจากค่าเริ่มต้นหากการกำหนด FCC ของ path32 หรือ path64 ไม่ถูกต้อง |
OpenCoverTarget | จัดหาเป้าหมายของคุณเองหากจำเป็น |
OpenCoverTargetArgs | หากระบุเป้าหมายของคุณเอง คุณยังสามารถระบุข้อโต้แย้งเพิ่มเติมได้ FCC จัดเตรียมเส้นทาง test dll |
OpenCoverCustomPath | ระบุเส้นทางเพื่อเปิด cover exe หากคุณต้องการฟังก์ชันการทำงานที่เวอร์ชัน FCC ไม่มีให้ |
ThresholdForNPathComplexity | เมื่อความซับซ้อนของ npath เกินค่านี้สำหรับวิธีการ วิธีการนั้นจะปรากฏในแท็บฮอตสปอตความเสี่ยง |
เกณฑ์สำหรับ CrapScore | เมื่อคะแนนอึเกินค่านี้สำหรับวิธีการ วิธีการนั้นจะปรากฏในแท็บฮอตสปอตความเสี่ยง |
คุณอาจต้องการตั้งค่ารวมReferencedProjectsเป็นจริง เพื่อให้แน่ใจว่าคุณจะไม่ได้รับความครอบคลุมสำหรับกรอบการทดสอบ - เฉพาะโค้ดของคุณเท่านั้น
Coverlet และ OpenCover ใช้นิพจน์ตัวกรอง กรองนิพจน์
สัญลักษณ์แทน
* => จับคู่อักขระตั้งแต่ศูนย์ขึ้นไป ตัวอย่าง
[*]* => ทุกประเภทในทุกชุดประกอบ
[coverlet.*]Coverlet.Core.Coverage => ระดับความครอบคลุมในเนมสเปซ Coverlet.Core ที่เป็นของชุดประกอบใด ๆ ที่ตรงกับ coverlet.* (เช่น coverlet.core)
[*]Coverlet.Core.Instrumentation.* => ทุกประเภทที่เป็นของเนมสเปซ Coverlet.Core.Instrumentation ในแอสเซมบลีใดๆ
[coverlet.*.tests]* => ทุกประเภทในชุดประกอบใดๆ ที่ขึ้นต้นด้วย coverlet และลงท้ายด้วย .tests
สามารถใช้ทั้งตัวเลือก 'ยกเว้น' และ 'รวม' ร่วมกันได้ แต่ 'ยกเว้น' จะมีความสำคัญเหนือกว่า
การครอบคลุมโค้ด Ms ใช้ regexes คุณสามารถรวมหรือแยกแอสเซมบลีหรือประเภทและสมาชิกเฉพาะจากการวิเคราะห์การครอบคลุมโค้ดได้ หากส่วนรวมว่างเปล่าหรือละเว้น แอสเซมบลีทั้งหมดที่โหลดและมีไฟล์ PDB ที่เกี่ยวข้องจะถูกรวมไว้ด้วย หากแอสเซมบลีหรือสมาชิกตรงกับส่วนคำสั่งในส่วนยกเว้น ก็จะถูกแยกออกจากการครอบคลุมโค้ด ส่วนแยกจะมีความสำคัญเหนือส่วนรวม: หากแอสเซมบลีแสดงอยู่ในทั้งรวมและไม่รวม ก็จะไม่รวมอยู่ในการครอบคลุมโค้ด
คุณสามารถละเว้นวิธีการหรือทั้งคลาสจากการครอบคลุมโค้ดได้โดยใช้แอตทริบิวต์ [ExcludeFromCodeCoverage] ที่มีอยู่ในเนมสเปซ System.Diagnostics.CodeAnalysis
สำหรับ .Net ( ไม่ใช่ .Net Framework ) คุณลักษณะนี้สามารถนำไปใช้ในระดับแอสเซมบลี
สำหรับ .Net Framework โปรดดู FCCExcludeFromCodeCoverage ด้านบนสำหรับฟังก์ชันการทำงานที่คล้ายกัน
หากต้องการละเว้นโค้ดที่มีแหล่งที่มาเป็นประเภทอื่น:
คุณยังสามารถละเว้นแอตทริบิวต์เพิ่มเติมได้โดยเพิ่มลงในรายการ 'ExcludeByAttribute' สำหรับ Coverlet/OpenCover เพิ่มเพื่อเพิ่มลงในรายการ 'ExcludeByAttribute' (ผ่านการรับรองโดยครบถ้วนหรือไม่ผ่านการรับรอง) สำหรับการครอบคลุมโค้ด ms ให้เพิ่มในรายการ 'AttributesExclude' สิ่งนี้ใช้การจับคู่ regex
ตามค่าเริ่มต้น เอาต์พุตของ FCC ภายในโฟลเดอร์ Debug ของโครงการทดสอบแต่ละโครงการ หากคุณต้องการ คุณสามารถระบุโฟลเดอร์เพื่อเก็บไฟล์ที่ส่งออกภายในและใช้โดย FCC ทั้งสองวิธีด้านล่างค้นหาไดเร็กทอรีที่มีไฟล์ .sln ในไดเร็กทอรีลำดับบนของไดเร็กทอรีที่มีไฟล์โครงการทดสอบไฟล์แรก หากพบไดเร็กทอรีโซลูชันดังกล่าว ตรรกะก็จะนำไปใช้
หากไดเร็กทอรีโซลูชันมีไดเร็กทอรีย่อย fcc-output ไดเร็กทอรีนั้นจะถูกนำมาใช้โดยอัตโนมัติ
หรืออีกทางหนึ่ง หากคุณระบุ FCCSolutionOutputDirectoryName ในตัวเลือก ไดเร็กทอรีจะถูกสร้างขึ้นหากจำเป็นและใช้งาน
ตรวจสอบแนวทางการบริจาคหากคุณต้องการมีส่วนร่วมในโครงการนี้
สำหรับการโคลนและสร้างโปรเจ็กต์นี้ด้วยตัวเอง ตรวจสอบให้แน่ใจว่าได้ติดตั้งส่วนขยาย Extensibility Essentials สำหรับ Visual Studio ซึ่งเปิดใช้งานคุณสมบัติบางอย่างที่โปรเจ็กต์นี้ใช้
อาปาเช่ 2.0
ผ้าคลุมเตียง
OpenCover
เครื่องกำเนิดรายงาน
ผู้ให้บริการ | พิมพ์ | ลิงค์ |
---|---|---|
เพย์พาล | ครั้งหนึ่ง | |
ลิเบอร์ราเพย์ | เกิดซ้ำ |