การทำให้การทดสอบหน่วยง่ายขึ้นใน 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 ที่ช่วยให้คุณเรียกใช้การทดสอบในโปรเจกต์หรือโฟลเดอร์ที่เฉพาะเจาะจงด้วยคำสั่งแป้นพิมพ์ที่ง่าย ต่อไปนี้คือวิธีการตั้งค่า:

คำแนะนำทีละขั้นตอนในการสร้างมาโคร

  1. เปิด Visual Studio: เริ่มใช้สภาพแวดล้อม Visual Studio ของคุณ

  2. สร้างมาโครชั่วคราว:

    • นำทางไปที่เมนู: Tools > Macros > Record TemporaryMacro
    • สิ่งนี้จะเริ่มบันทึกการกระทำของคุณ
  3. เลือกโฟลเดอร์ทดสอบของคุณ:

    • ใน Solution Explorer เลือกโฟลเดอร์ [Tests] (หรือโฟลเดอร์ทดสอบที่คุณต้องการ)
  4. เรียกใช้การทดสอบ:

    • รันคำสั่งสำหรับการเรียกใช้การทดสอบโดยใช้ ReSharper: ReSharper.UnitTest.ContextRun.
  5. หยุดการบันทึก:

    • เมื่อเสร็จแล้ว ให้กลับไปที่ Tools > Macros และหยุดการบันทึก
  6. แก้ไขมาโคร:

    • คุณสามารถค้นหามาโครที่บันทึกไว้ของคุณได้ที่ 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
  1. ผูกมาโครกับทางลัดแป้นพิมพ์:
    • ไปที่ Tools > Options > Environment > Keyboard
    • ค้นหามาโครของคุณในรายการและมอบทางลัดแป้นพิมพ์ให้กับมัน

วิธีการที่มีความทั่วไปมากขึ้นด้วยไฟล์กำหนดค่า

แม้ว่าวิธีข้างต้นจะให้วิธีแก้ปัญหาที่มั่นคงสำหรับการเรียกใช้การทดสอบ แต่ก็สามารถดียิ่งขึ้นหากคุณพิจารณาวิธีการที่สามารถขยายได้มากขึ้น ลองนึกภาพการตั้งค่าซึ่งโปรเจกต์ โฟลเดอร์ หรือคลาสที่ต้องการเรียกใช้ผ่านไฟล์ XML สิ่งนี้สามารถ:

  • ง่ายกับการควบคุมเวอร์ชัน
  • รับรองว่าทุกคนในทีมของคุณทำตามกระบวนการดำเนินการทดสอบเดียวกัน

ประโยชน์ของการใช้การกำหนดค่า XML

  • ความสม่ำเสมอ: นักพัฒนาทุกคนสามารถแชร์การกำหนดค่าเดียวกันได้
  • ความยืดหยุ่น: แก้ไขเป้าหมายการทดสอบได้ง่ายโดยไม่ต้องเปลี่ยนแปลงโค้ด
  • ความเรียบง่าย: ผู้ที่ไม่ใช่นักพัฒนาบนทีมของคุณสามารถเพิ่มหรือแก้ไขการตั้งค่าการทดสอบได้โดยไม่ต้องใช้ Visual Studio IDE

โดยสรุป ด้วยการใช้มาโครใน Visual Studio และอาจรวมถึงไฟล์กำหนดค่า คุณสามารถปรับปรุงการทำงานในการพัฒนาของคุณได้อย่างมาก ระบบนี้ไม่เพียงช่วยประหยัดเวลา แต่ยังช่วยให้ทีมของคุณสามารถจัดการการดำเนินการทดสอบได้อย่างง่ายดาย ตอนนี้ ด้วยความสามารถในการเรียกใช้การทดสอบเฉพาะโดยใช้ทางลัดแป้นพิมพ์เพียงอย่างเดียว คุณสามารถมุ่งเน้นการเขียนโค้ดมากขึ้นและลดการนำทางผ่าน IDE ของคุณได้