การเรียกใช้การทดสอบด้วย GitHub Actions
ผสานการทดสอบหน่วยและการทดสอบการผสานรวมแบบอัตโนมัติเข้ากับไปป์ไลน์ CI เพื่อรับรองคุณภาพโค้ดและป้องกันปัญหาเดิมกลับมา
การเรียกใช้การทดสอบด้วย GitHub Actions เป็นบทเรียน CI/CD with GitHub Actions & DevOps Pipelines ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CI/CD with GitHub Actions & DevOps Pipelines และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงทำการทดสอบอัตโนมัติใน CI
ลองจินตนาการว่าคุณแก้ไขโค้ดแล้วทราบทันทีว่าการแก้ไขนั้นทำให้ส่วนอื่นเสียหายหรือไม่ นี่คือพลังของการทดสอบอัตโนมัติในไปป์ไลน์ CI ของคุณ!
การผสานรวมอย่างต่อเนื่อง (CI) คือการผสานการเปลี่ยนแปลงโค้ดเข้ากับที่เก็บโค้ดส่วนกลางอยู่เป็นประจำ การทดสอบอัตโนมัติคือกลไกสำคัญที่ช่วยดูแลกระบวนการนี้
การทดสอบเหล่านี้ช่วยตรวจพบข้อบกพร่องตั้งแต่เนิ่น ๆ ให้ผลตอบรับอย่างรวดเร็ว และสร้างความมั่นใจในการเปลี่ยนแปลงโค้ดทุกครั้ง
ประเภทของการทดสอบในไปป์ไลน์ของคุณ
เมื่อพูดถึงการทดสอบอัตโนมัติ มักจะมีการทดสอบหลักอยู่สองประเภท ได้แก่ การทดสอบหน่วยย่อยและการทดสอบการผสานรวม
- การทดสอบหน่วยย่อย: มุ่งเน้นส่วนเล็ก ๆ ที่แยกเป็นอิสระของโค้ด เช่น ฟังก์ชันหรือเมธอดเดียว การทดสอบประเภทนี้ทำงานได้รวดเร็วและระบุปัญหาได้อย่างแม่นยำ
- การทดสอบการผสานรวม: ตรวจสอบว่าส่วนต่าง ๆ ของระบบทำงานร่วมกันได้อย่างถูกต้องหรือไม่ เช่น การที่โค้ดของคุณโต้ตอบกับฐานข้อมูลหรือ API
การทดสอบทั้งสองประเภทมีความสำคัญอย่างยิ่งต่อการทำให้ซอฟต์แวร์ของคุณแข็งแกร่งและเชื่อถือได้
การทำการทดสอบอัตโนมัติด้วย GitHub Actions
GitHub Actions สามารถทำหน้าที่เป็นตัวเรียกใช้การทดสอบส่วนตัวของคุณ โดยเรียกใช้การทดสอบโดยอัตโนมัติทุกครั้งที่คุณส่งโค้ดใหม่ขึ้นไป
คุณกำหนดเวิร์กโฟลว์ที่ระบุว่าจะทำงานเมื่อใด ใช้สภาพแวดล้อมใด และเรียกใช้คำสั่งใด
วิธีนี้ช่วยให้การเปลี่ยนแปลงทุกครั้งได้รับการตรวจสอบอย่างสม่ำเสมอโดยไม่ต้องดำเนินการด้วยตนเอง
การเตรียมโครงการ Java สำหรับการทดสอบ
เพื่อสาธิต เราจะใช้โครงการ Java อย่างง่ายที่จัดการด้วย Maven ซึ่งเป็นเครื่องมือทำให้กระบวนการสร้างเป็นอัตโนมัติที่ได้รับความนิยม
Maven ช่วยจัดการการพึ่งพาของโครงการ และมีคำสั่งสำหรับคอมไพล์โค้ดและเรียกใช้การทดสอบ
โครงการของเราจะมีคลาส Java อย่างง่ายและการทดสอบ JUnit ที่สอดคล้องกันในเชิงแนวคิด
ตัวอย่างการทดสอบแรกที่เรียกใช้ได้
นี่คือตัวอย่างคลาส Java อย่างง่ายและการทดสอบพื้นฐานสำหรับตรวจสอบการทำงานของคลาส เราจะจำลองการทดสอบหน่วยย่อยโดยไม่ตั้งค่า JUnit อย่างเต็มรูปแบบเพื่อให้ตัวอย่างเรียบง่าย
เมธอด main ทำหน้าที่เป็นตัวเรียกใช้การทดสอบของเรา โดยตรวจสอบว่าเมธอด add ทำงานตามที่คาดไว้หรือไม่
ลองเรียกใช้เพื่อดูผลลัพธ์!
public class Calculator {
// Method to be tested
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
Calculator calc = new Calculator();
// Simulate a test case
int expected = 5;
int actual = calc.add(2, 3);
if (actual == expected) {
System.out.println("Test Passed: 2 + 3 = " + actual);
} else {
System.out.println("Test Failed: Expected " + expected + ", Got " + actual);
}
}
}การสร้างเวิร์กโฟลว์การทดสอบ
ตอนนี้มาดูกันว่าไฟล์เวิร์กโฟลว์ของ GitHub Actions (.github/workflows/test.yml) สำหรับเรียกใช้การทดสอบของเราจะมีหน้าตาอย่างไร
ไฟล์ YAML นี้กำหนดขั้นตอนที่ GitHub Actions จะดำเนินการเพื่อตั้งค่าสภาพแวดล้อมและเรียกใช้คำสั่งการทดสอบของเรา
เราจะใช้คำสั่ง test ของ Maven เพื่อเรียกใช้การทดสอบ JUnit จริงในโครงการจริง
name: Java CI with Maven
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Run Maven Tests
run: mvn test
ทำความเข้าใจแต่ละขั้นตอนของเวิร์กโฟลว์
มาดูรายละเอียดขั้นตอนสำคัญในเวิร์กโฟลว์การทดสอบของเรากัน
on: push / pull_request: เรียกใช้เวิร์กโฟลว์เมื่อมีการส่งโค้ดขึ้นไปหรือมีคำขอผสานโค้ดไปยังสาขาmainruns-on: ubuntu-latest: ระบุระบบปฏิบัติการสำหรับเครื่องเสมือน (ตัวเรียกใช้) ที่เวิร์กโฟลว์จะทำงานactions/checkout@v4: แอ็กชันที่สร้างไว้ล่วงหน้าสำหรับดึงโค้ดจากที่เก็บโค้ดของคุณมาไว้บนตัวเรียกใช้actions/setup-java@v4: แอ็กชันอีกตัวสำหรับตั้งค่า Java Development Kit (JDK) บนตัวเรียกใช้run: mvn test: นี่คือขั้นตอนสำคัญ! ขั้นตอนนี้เรียกใช้คำสั่ง Maven เพื่อคอมไพล์โค้ดของคุณและเรียกใช้การทดสอบทั้งหมดที่กำหนดไว้
การจัดการการทดสอบที่ล้มเหลวใน CI
ประโยชน์สำคัญของการทดสอบใน CI คือการได้รับผลตอบรับทันที หากการทดสอบใดล้มเหลว งานเวิร์กโฟลว์ของ GitHub Actions ก็จะล้มเหลวด้วย
สิ่งนี้เป็นสัญญาณที่ชัดเจนว่าการเปลี่ยนแปลงโค้ดล่าสุดทำให้เกิดข้อบกพร่องหรือการถดถอย
จากนั้นคุณสามารถตรวจสอบบันทึกของเวิร์กโฟลว์เพื่อระบุได้อย่างแม่นยำว่าการทดสอบใดล้มเหลวและเพราะเหตุใด ซึ่งจะช่วยให้คุณแก้ไขปัญหาได้อย่างรวดเร็ว
ผลกระทบ: คุณภาพและความมั่นใจ
การผสานการทดสอบอัตโนมัติเข้ากับไปป์ไลน์ CI เป็นรากฐานสำคัญของการพัฒนาซอฟต์แวร์สมัยใหม่
กระบวนการนี้ช่วยป้องกันการถดถอยอย่างจริงจัง ทำให้คุณภาพโค้ดสม่ำเสมอ และลดความเสี่ยงในการนำฟีเจอร์ที่เสียหายขึ้นใช้งานได้อย่างมาก
กระบวนการนี้สร้างความมั่นใจในฐานโค้ดของคุณ ทำให้ทีมสามารถสร้างสรรค์สิ่งใหม่ ๆ ได้รวดเร็วและเชื่อถือได้มากขึ้น
การตรวจสอบเวิร์กโฟลว์การทดสอบ
พิจารณาเวิร์กโฟลว์ GitHub Actions ที่ออกแบบมาเพื่อเรียกใช้การทดสอบ จุดประสงค์หลักของขั้นตอน run: mvn test ในโครงการ Java คืออะไร
สรุป: การทดสอบในไปป์ไลน์ CI ของคุณ
ในบทเรียนนี้ เราได้สำรวจวิธีผสานการทดสอบอัตโนมัติเข้ากับไปป์ไลน์ CI ของ GitHub Actions
เราได้ครอบคลุมหัวข้อต่อไปนี้
- ความสำคัญของการทดสอบอัตโนมัติต่อคุณภาพโค้ด
- ความแตกต่างระหว่างการทดสอบหน่วยย่อยกับการทดสอบการผสานรวม
- วิธีจัดโครงสร้างเวิร์กโฟลว์ GitHub Actions เพื่อเรียกใช้การทดสอบ Java โดยใช้ Maven
- ความเข้าใจเกี่ยวกับขั้นตอนของเวิร์กโฟลว์ เช่น
checkoutและsetup-java - บทบาทสำคัญของ
mvn testในการเรียกใช้การทดสอบ - วิธีที่ GitHub Actions รายงานการทดสอบที่ล้มเหลว
การทดสอบอัตโนมัติมีความสำคัญอย่างยิ่งต่อการตรวจพบข้อบกพร่องตั้งแต่เนิ่น ๆ และการรักษาฐานโค้ดให้แข็งแกร่ง!
คำถามที่พบบ่อย
บทเรียน “การเรียกใช้การทดสอบด้วย GitHub Actions” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเรียกใช้การทดสอบด้วย GitHub Actions” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CI/CD with GitHub Actions & DevOps Pipelines ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเรียกใช้การทดสอบด้วย GitHub Actions”
ผสานการทดสอบหน่วยและการทดสอบการผสานรวมแบบอัตโนมัติเข้ากับไปป์ไลน์ CI เพื่อรับรองคุณภาพโค้ดและป้องกันปัญหาเดิมกลับมา คุณปฏิบัติ CI/CD with GitHub Actions & DevOps Pipelines ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CI/CD with GitHub Actions & DevOps Pipelines หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน CI/CD with GitHub Actions & DevOps Pipelines บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การเรียกใช้การทดสอบด้วย GitHub Actions” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน CI/CD with GitHub Actions & DevOps Pipelines นี้ได้ไหม
ได้ บทเรียน CI/CD with GitHub Actions & DevOps Pipelines ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวกระตุ้นและเหตุการณ์ของเวิร์กโฟลว์
- การเรียกใช้การทดสอบด้วย GitHub Actions
- การตรวจรูปแบบและตรวจสอบคุณภาพโค้ด
- การแคชทรัพยากรพึ่งพาเพื่อเร่งการสร้าง