GitHub Actions로 테스트 실행
코드 품질을 보장하고 회귀를 방지하도록 자동화된 단위 테스트와 통합 테스트를 CI 파이프라인에 통합합니다.
GitHub Actions로 테스트 실행은(는) CoddyKit의 무료 CI/CD with GitHub Actions & DevOps Pipelines 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 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 프로젝트 준비
예제를 위해 널리 사용되는 빌드 자동화 도구인 Maven으로 관리하는 간단한 Java 프로젝트를 사용하겠습니다.
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가 수행할 단계를 정의합니다.
실제 프로젝트에서 JUnit 테스트를 실행하기 위해 Maven의 test 명령을 사용하겠습니다.
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: 코드가 푸시되거나main브랜치로 풀 리퀘스트가 생성될 때 워크플로를 실행합니다.runs-on: ubuntu-latest: 워크플로가 실행될 가상 머신(실행기)의 운영 체제를 지정합니다.actions/checkout@v4: 저장소의 코드를 실행기로 가져오는 미리 빌드된 작업입니다.actions/setup-java@v4: 실행기에 Java 개발 키트(JDK)를 설정하는 또 다른 작업입니다.run: mvn test: 핵심 단계입니다! Maven 명령을 실행하여 코드를 컴파일하고 정의된 모든 테스트를 실행합니다.
CI에서 테스트 실패 처리
CI 테스트의 주요 장점은 즉각적인 피드백입니다. 테스트가 하나라도 실패하면 GitHub Actions 워크플로 작업이 실패합니다.
이는 최근 코드 변경으로 버그나 회귀가 발생했음을 명확하게 알려 줍니다.
그런 다음 워크플로 로그를 검토하여 어떤 테스트가 왜 실패했는지 정확히 찾아내고 문제를 신속하게 해결할 수 있습니다.
영향: 품질과 확신
자동화된 테스트를 CI 파이프라인에 통합하는 것은 현대 소프트웨어 개발의 핵심 요소입니다.
이 방식은 회귀를 적극적으로 방지하고, 일관된 코드 품질을 보장하며, 문제가 있는 기능을 배포할 위험을 크게 줄입니다.
이 과정은 코드베이스에 대한 확신을 높여 팀이 더 빠르고 안정적으로 혁신할 수 있도록 합니다.
워크플로 테스트 확인
테스트를 실행하도록 설계된 GitHub Actions 워크플로를 생각해 보십시오. Java 프로젝트에서 run: mvn test 단계의 주된 목적은 무엇입니까?
복습: CI 파이프라인의 테스트
이번 단원에서는 자동화된 테스트를 GitHub Actions CI 파이프라인에 통합하는 방법을 살펴보았습니다.
다음 내용을 다뤘습니다:
- 코드 품질을 위한 자동화된 테스트의 중요성
- 단위 테스트와 통합 테스트의 차이
- Maven을 사용해 Java 테스트를 실행하도록 GitHub Actions 워크플로를 구성하는 방법
checkout및setup-java와 같은 워크플로 단계 이해하기- 테스트를 실행하는
mvn test의 핵심 역할 - GitHub Actions가 테스트 실패를 보고하는 방식
자동화된 테스트는 버그를 조기에 발견하고 견고한 코드베이스를 유지하는 데 매우 중요합니다!
자주 묻는 질문
“GitHub Actions로 테스트 실행” 강의는 무료인가요?
네 — “GitHub Actions로 테스트 실행” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 CI/CD with GitHub Actions & DevOps Pipelines 강의 전체를 잠금 해제할 수 있습니다. CI/CD with GitHub Actions & DevOps Pipelines 강의에는 총 4개의 강의가 포함되어 있습니다.
“GitHub Actions로 테스트 실행”에서 뭘 배우나요?
코드 품질을 보장하고 회귀를 방지하도록 자동화된 단위 테스트와 통합 테스트를 CI 파이프라인에 통합합니다. 브라우저에서 직접 실행하는 실습 코드로 CI/CD with GitHub Actions & DevOps Pipelines을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
CI/CD with GitHub Actions & DevOps Pipelines을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 CI/CD with GitHub Actions & DevOps Pipelines은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“GitHub Actions로 테스트 실행” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 CI/CD with GitHub Actions & DevOps Pipelines 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 CI/CD with GitHub Actions & DevOps Pipelines 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 워크플로 트리거 및 이벤트
- GitHub Actions로 테스트 실행
- 린팅 및 코드 품질 검사
- 더 빠른 빌드를 위한 의존성 캐싱