이 빠른 시작에서는 GitHub 워크플로를 만들어 .NET 소스 코드를 테스트하는 방법을 알아봅니다. GitHub 내에서 .NET 코드를 자동으로 테스트하는 것을 CI(연속 통합)라고 합니다. 여기서 끌어오기 요청 또는 소스 트리거 워크플로에 대한 변경 내용을 연습할 수 있습니다. 테스트는 소스 코드를 빌드하는 것과 함께 컴파일된 소스 코드가 작성자가 의도한 대로 작동하도록 합니다. 단위 테스트는 소스 코드 변경의 유효성을 보장하는 데 도움이 되는 즉각적인 피드백 루프 역할을 하는 경우가 많습니다.
필수 조건
- GitHub 계정
- .NET 소스 코드 리포지토리입니다.
워크플로 파일 만들기
GitHub 리포지토리에서 .github/workflows 디렉터리에 새 YAML 파일을 추가합니다. 워크플로의 용도를 명확하게 나타내는 의미 있는 파일 이름을 선택합니다. 자세한 내용은 워크플로 파일을 참조하세요.
중요합니다
GitHub를 사용하려면 워크플로 컴퍼지션 파일을 .github/workflows 디렉터리 내에 배치해야 합니다.
워크플로 파일은 일반적으로 jobs.<job_id>/steps[*]
를 통해 하나 이상의 GitHub Action의 구성을 정의합니다. 자세한 내용은 GitHub Actions에 대한 워크플로 구문을 참조하세요.
build-and-test.yml 새 파일을 만들고 다음 YML 콘텐츠를 복사하여 붙여넣습니다.
name: build and test
on:
push:
pull_request:
branches: [ main ]
paths:
- '**.cs'
- '**.csproj'
env:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
build-and-test:
name: build-and-test-${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
이전 워크플로 컴퍼지션에서:
name: build and test
이름을 정의합니다. "빌드 및 테스트"는 워크플로 상태 배지에 표시됩니다.name: build and test
노드는
on
워크플로를 트리거하는 이벤트를 의미합니다.on: push: pull_request: branches: [ main ] paths: - '**.cs' - '**.csproj'
-
push
또는pull_request
이(가) 발생하고,main
분기에서 파일 확장자가 .cs 또는 .csproj인 파일이 변경될 때 트리거가 발생합니다.
-
노드는
env
명명된 환경 변수(env var)를 정의합니다.env: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- 환경 변수
DOTNET_VERSION
에 값'6.0.401'
이 할당됩니다. 환경 변수는 나중에 GitHub Action을dotnet-version
actions/setup-dotnet@v3
지정하기 위해 참조됩니다.
- 환경 변수
노드는
jobs
워크플로에서 수행할 단계를 빌드합니다.jobs: build-and-test: name: build-and-test-${{matrix.os}} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: dotnet build --configuration Release --no-restore - name: Test run: dotnet test --no-restore --verbosity normal
-
strategy/matrix
의 운영 체제 이름인<os>
이라는 단일 작업이build-<os>
에 있습니다.name
및runs-on
요소는matrix/os
의 각 값에 대해 동적입니다. 최신 버전의 Ubuntu, Windows 및 macOS에서 실행됩니다. -
actions/setup-dotnet@v3
GitHub 작업은 환경 변수에서 지정된 버전으로 .NET SDK를DOTNET_VERSION
설정하는 데 사용됩니다. -
dotnet restore
명령이 호출됩니다. -
dotnet build
명령이 호출됩니다. -
dotnet test
명령이 호출됩니다.
-
워크플로 상태 배지 만들기
GitHub 리포지토리가 리포지토리 디렉터리의 루트에 README.md 파일을 갖는 것은 일반적인 명명법입니다. 마찬가지로 다양한 워크플로에 대한 최신 상태를 보고하는 것이 좋습니다. 모든 워크플로는 README.md 파일 내에서 시각적으로 매력적인 상태 배지를 생성할 수 있습니다. 워크플로 상태 배지를 추가하려면 다음을 수행합니다.
GitHub 리포지토리에서 작업 탐색 옵션을 선택합니다.
모든 리포지토리 워크플로가 왼쪽에 표시되고 원하는 워크플로와 줄임표(...) 단추를 선택합니다.
- 줄임표(...) 단추는 선택한 워크플로의 메뉴 옵션을 확장합니다.
상태 배지 만들기 메뉴 옵션을 선택합니다.
복사 상태 배지 Markdown 버튼을 선택합니다.
Markdown을 README.md 파일에 붙여넣고, 파일을 저장하고, 변경 내용을 커밋하고 푸시합니다.
자세한 내용은 워크플로 상태 배지 추가를 참조하세요.
예제 테스트 워크플로 상태 배지
전달 | 실패 | 상태 없음 |
---|---|---|
|
|
|
참고하십시오
다음 단계
.NET