การทำให้การทดสอบหน่วยง่ายขึ้นใน Visual Studio: คู่มือการเรียกใช้การทดสอบในโฟลเดอร์และโปรเจกต์ที่แตกต่างกัน
การทดสอบหน่วยเป็นแง่มุมที่สำคัญของการพัฒนาซอฟต์แวร์ในปัจจุบัน โดยมั่นใจว่าส่วนประกอบที่แยกกันทำงานตามที่ตั้งใจไว้ก่อนที่จะนำเข้าไปยังระบบที่ใหญ่ขึ้น ในสภาพแวดล้อมเช่น Visual Studio การสร้างโปรเจกต์แยกต่างหากสำหรับการทดสอบหน่วยและการทดสอบการรวมเป็นเรื่องธรรมดา โครงสร้างนี้อาจทำให้การเรียกใช้การทดสอบซับซ้อน โดยเฉพาะเมื่อคุณต้องการเรียกใช้การทดสอบอย่างรวดเร็วในโฟลเดอร์หรือโปรเจกต์ที่เฉพาะเจาะจง ในโพสต์นี้ เราจะมาแนะนำวิธีการในการเรียกใช้การทดสอบหน่วยของคุณตามโครงสร้างโฟลเดอร์ของโปรเจกต์ ทำให้กระบวนการมีความมีประสิทธิภาพมากขึ้นด้วยความช่วยเหลือของทางลัดแป้นพิมพ์และมาโคร
ความท้าทาย
นักพัฒนาหลายคนมีโครงสร้างโซลูชัน Visual Studio ของตนด้วยโปรเจกต์ที่แตกต่างกันสำหรับการทดสอบหน่วยและการทดสอบการรวม สิ่งนี้สร้างความจำเป็นในการมีแผนยุทธศาสตร์ที่ชัดเจนสำหรับการจัดการการทำงานของการทดสอบ เช่น:
- การเรียกใช้การทดสอบหน่วยบ่อยครั้ง
- การเรียกใช้การทดสอบการรวมในบริบทที่เฉพาะเจาะจงเท่านั้น
เป้าหมายของคุณอาจเป็นการกำหนุดทางลัดแป้นพิมพ์เพื่อเรียกใช้การทดสอบในโปรเจกต์ต่างๆ โดยไม่ต้องนำทางผ่านเมนูทุกครั้ง ตัวอย่างเช่น คุณอาจต้องการให้ได้ดังนี้:
- Alt+1: เรียกใช้การทดสอบในโปรเจกต์ BLL.Test
- Alt+2: เรียกใช้การทดสอบในโปรเจกต์ DAL.Tests
- Alt+3: เรียกใช้การทดสอบทั้งหมดในโฟลเดอร์ [Tests]
- Alt+4: เรียกใช้การทดสอบในโฟลเดอร์ [Tests.Integration]
โชคดีที่มีวิธีในการทำให้กระบวนการนี้ง่ายขึ้นใน Visual Studio
วิธีแก้ปัญหาที่ใช้งานได้จริงโดยใช้มาโคร
คุณสามารถสร้างมาโครใน Visual Studio ที่ช่วยให้คุณเรียกใช้การทดสอบในโปรเจกต์หรือโฟลเดอร์ที่เฉพาะเจาะจงด้วยคำสั่งแป้นพิมพ์ที่ง่าย ต่อไปนี้คือวิธีการตั้งค่า:
คำแนะนำทีละขั้นตอนในการสร้างมาโคร
-
เปิด Visual Studio: เริ่มใช้สภาพแวดล้อม Visual Studio ของคุณ
-
สร้างมาโครชั่วคราว:
- นำทางไปที่เมนู:
Tools > Macros > Record TemporaryMacro
- สิ่งนี้จะเริ่มบันทึกการกระทำของคุณ
- นำทางไปที่เมนู:
-
เลือกโฟลเดอร์ทดสอบของคุณ:
- ใน Solution Explorer เลือกโฟลเดอร์ [Tests] (หรือโฟลเดอร์ทดสอบที่คุณต้องการ)
-
เรียกใช้การทดสอบ:
- รันคำสั่งสำหรับการเรียกใช้การทดสอบโดยใช้ ReSharper:
ReSharper.UnitTest.ContextRun
.
- รันคำสั่งสำหรับการเรียกใช้การทดสอบโดยใช้ ReSharper:
-
หยุดการบันทึก:
- เมื่อเสร็จแล้ว ให้กลับไปที่
Tools > Macros
และหยุดการบันทึก
- เมื่อเสร็จแล้ว ให้กลับไปที่
-
แก้ไขมาโคร:
- คุณสามารถค้นหามาโครที่บันทึกไว้ของคุณได้ที่
Tools > Macros > MyMacros
- แก้ไขให้ตรงตามความต้องการของคุณ (คุณจะพบโค้ดเพื่อเรียกใช้โฟลเดอร์ทดสอบเฉพาะของคุณ)
- คุณสามารถค้นหามาโครที่บันทึกไว้ของคุณได้ที่
ตัวอย่างของมาโครที่บันทึกไว้
นี่คือตัวอย่างโค้ดมาโครที่คุณสามารถปรับแต่งให้ตรงตามโครงสร้างโปรเจกต์ของคุณ:
Sub TemporaryMacro()
DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate
DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun")
End Sub
- ผูกมาโครกับทางลัดแป้นพิมพ์:
- ไปที่
Tools > Options > Environment > Keyboard
- ค้นหามาโครของคุณในรายการและมอบทางลัดแป้นพิมพ์ให้กับมัน
- ไปที่
วิธีการที่มีความทั่วไปมากขึ้นด้วยไฟล์กำหนดค่า
แม้ว่าวิธีข้างต้นจะให้วิธีแก้ปัญหาที่มั่นคงสำหรับการเรียกใช้การทดสอบ แต่ก็สามารถดียิ่งขึ้นหากคุณพิจารณาวิธีการที่สามารถขยายได้มากขึ้น ลองนึกภาพการตั้งค่าซึ่งโปรเจกต์ โฟลเดอร์ หรือคลาสที่ต้องการเรียกใช้ผ่านไฟล์ XML สิ่งนี้สามารถ:
- ง่ายกับการควบคุมเวอร์ชัน
- รับรองว่าทุกคนในทีมของคุณทำตามกระบวนการดำเนินการทดสอบเดียวกัน
ประโยชน์ของการใช้การกำหนดค่า XML
- ความสม่ำเสมอ: นักพัฒนาทุกคนสามารถแชร์การกำหนดค่าเดียวกันได้
- ความยืดหยุ่น: แก้ไขเป้าหมายการทดสอบได้ง่ายโดยไม่ต้องเปลี่ยนแปลงโค้ด
- ความเรียบง่าย: ผู้ที่ไม่ใช่นักพัฒนาบนทีมของคุณสามารถเพิ่มหรือแก้ไขการตั้งค่าการทดสอบได้โดยไม่ต้องใช้ Visual Studio IDE
โดยสรุป ด้วยการใช้มาโครใน Visual Studio และอาจรวมถึงไฟล์กำหนดค่า คุณสามารถปรับปรุงการทำงานในการพัฒนาของคุณได้อย่างมาก ระบบนี้ไม่เพียงช่วยประหยัดเวลา แต่ยังช่วยให้ทีมของคุณสามารถจัดการการดำเนินการทดสอบได้อย่างง่ายดาย ตอนนี้ ด้วยความสามารถในการเรียกใช้การทดสอบเฉพาะโดยใช้ทางลัดแป้นพิมพ์เพียงอย่างเดียว คุณสามารถมุ่งเน้นการเขียนโค้ดมากขึ้นและลดการนำทางผ่าน IDE ของคุณได้