ไม่ไม่ใช่ด้วยเหตุผลสองประการ:
ความเร็ว
ความมุ่งมั่นควรจะรวดเร็ว ยกตัวอย่างเช่นการคอมมิชชันซึ่งใช้เวลา 500 ms. ช้าเกินไปและจะกระตุ้นให้ผู้พัฒนาทำภาระมากขึ้น เนื่องจากว่าในโครงการใดที่มีขนาดใหญ่กว่า Hello World คุณจะมีการทดสอบหลายสิบหรือหลายร้อยการทดสอบมันจะใช้เวลามากเกินไปในการรันมันในระหว่างการเตรียมการล่วงหน้า
แน่นอนว่าสิ่งต่าง ๆ แย่ลงสำหรับโครงการขนาดใหญ่ที่มีการทดสอบหลายพันครั้งซึ่งใช้เวลาหลายนาทีในสถาปัตยกรรมแบบกระจายหรือสัปดาห์หรือเป็นเดือนในเครื่องเดียว
ส่วนที่แย่ที่สุดคือไม่มีสิ่งใดที่คุณสามารถทำได้เพื่อทำให้เร็วขึ้น โครงการงูหลามขนาดเล็กที่มีร้อยทดสอบหน่วยใช้เวลาอย่างน้อยหนึ่งวินาทีในการทำงานบนเซิร์ฟเวอร์เฉลี่ย แต่มักจะนานกว่ามาก สำหรับแอปพลิเคชัน C # จะใช้เวลาเฉลี่ยสี่ห้าวินาทีเนื่องจากเวลารวบรวม
จากจุดนั้นคุณสามารถจ่ายเพิ่ม $ 10,000 สำหรับเซิร์ฟเวอร์ที่ดีกว่าซึ่งจะลดเวลา แต่ไม่มากหรือรันการทดสอบบนเซิร์ฟเวอร์หลายเครื่องซึ่งจะชะลอตัวลงเท่านั้น
ทั้งสองจ่ายเงินได้ดีเมื่อคุณมีการทดสอบหลายพันครั้ง (รวมถึงการทดสอบการใช้งานระบบและการรวมระบบ) ช่วยให้คุณสามารถดำเนินการทดสอบได้ในเวลาไม่กี่นาทีแทนที่จะเป็นสัปดาห์ แต่สิ่งนี้จะไม่ช่วยคุณในโครงการขนาดเล็ก
สิ่งที่คุณสามารถทำได้คือ:
กระตุ้นให้นักพัฒนารันการทดสอบที่เกี่ยวข้องอย่างยิ่งกับรหัสที่แก้ไขในเครื่องก่อนทำการคอมมิท พวกเขาอาจไม่สามารถทำการทดสอบหลายพันหน่วยได้ แต่ก็สามารถทดสอบได้ห้าสิบข้อ
ตรวจสอบให้แน่ใจว่าการค้นหาการทดสอบที่เกี่ยวข้องและการใช้งานนั้นเป็นเรื่องง่าย (และรวดเร็ว) ตัวอย่างเช่น Visual Studio สามารถตรวจสอบว่าการทดสอบใดที่อาจได้รับผลกระทบจากการเปลี่ยนแปลงที่เกิดขึ้นตั้งแต่การดำเนินการครั้งสุดท้าย IDE / แพลตฟอร์ม / ภาษา / กรอบงานอื่น ๆ อาจมีฟังก์ชั่นที่คล้ายกัน
รักษาความมุ่งมั่นโดยเร็วที่สุด การบังคับใช้กฎสไตล์เป็นปกติเพราะบ่อยครั้งเป็นที่เดียวที่จะทำและเนื่องจากเช็คดังกล่าวมักจะรวดเร็วอย่างน่าอัศจรรย์ การวิเคราะห์แบบสแตติกดำเนินการได้ทันทีที่มันยังคงทำงานได้อย่างรวดเร็วซึ่งไม่ค่อยเกิดขึ้น การเรียกใช้การทดสอบหน่วยไม่ตกลง
เรียกใช้การทดสอบหน่วยบนเซิร์ฟเวอร์การรวมอย่างต่อเนื่องของคุณ
ตรวจสอบให้แน่ใจว่านักพัฒนาซอฟต์แวร์ได้รับแจ้งโดยอัตโนมัติเมื่อพวกเขาทำลายการสร้าง (หรือเมื่อการทดสอบหน่วยล้มเหลวซึ่งเป็นสิ่งเดียวกันในทางปฏิบัติหากคุณพิจารณาคอมไพเลอร์เป็นเครื่องมือที่จะตรวจสอบข้อผิดพลาดที่อาจเกิดขึ้นได้
ตัวอย่างเช่นการไปที่หน้าเว็บเพื่อตรวจสอบบิลด์ล่าสุดไม่ใช่วิธีแก้ปัญหา พวกเขาควรจะได้รับการแจ้งโดยอัตโนมัติ การแสดงป๊อปอัพหรือส่ง SMS เป็นสองตัวอย่างของวิธีการที่พวกเขาอาจได้รับแจ้ง
ตรวจสอบให้แน่ใจว่านักพัฒนาเข้าใจว่าการทำลายการสร้าง (หรือการทดสอบการถดถอยล้มเหลว) นั้นไม่เป็นไรและทันทีที่มันเกิดขึ้นสิ่งสำคัญอันดับแรกของพวกเขาคือการแก้ไข ไม่สำคัญว่าพวกเขากำลังทำงานในคุณลักษณะที่มีลำดับความสำคัญสูงหรือไม่ซึ่งเจ้านายของพวกเขาขอให้จัดส่งในวันพรุ่งนี้: พวกเขาล้มเหลวในการสร้างพวกเขาควรแก้ไขมัน
ความปลอดภัย
เซิร์ฟเวอร์ที่โฮสต์ที่เก็บไม่ควรเรียกใช้รหัสที่กำหนดเองเช่นการทดสอบหน่วยโดยเฉพาะอย่างยิ่งเพื่อเหตุผลด้านความปลอดภัย เหตุผลเหล่านั้นถูกอธิบายในCI runner บนเซิร์ฟเวอร์เดียวกันของ GitLab แล้วหรือยัง
หากในอีกทางหนึ่งความคิดของคุณคือการเปิดใช้งานกระบวนการในการสร้างเซิร์ฟเวอร์จากเบ็ดกระทำก่อนแล้วมันจะชะลอตัวลงมากขึ้น