다음을 통해 공유


빠른 시작: 테스트 유효성 검사 GitHub 워크플로 만들기

이 빠른 시작에서는 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-versionactions/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>에 있습니다. nameruns-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 파일 내에서 시각적으로 매력적인 상태 배지를 생성할 수 있습니다. 워크플로 상태 배지를 추가하려면 다음을 수행합니다.

  1. GitHub 리포지토리에서 작업 탐색 옵션을 선택합니다.

  2. 모든 리포지토리 워크플로가 왼쪽에 표시되고 원하는 워크플로와 줄임표(...) 단추를 선택합니다.

    • 줄임표(...) 단추는 선택한 워크플로의 메뉴 옵션을 확장합니다.
  3. 상태 배지 만들기 메뉴 옵션을 선택합니다.

    GitHub: 상태 배지 만들기

  4. 복사 상태 배지 Markdown 버튼을 선택합니다.

    GitHub: 상태 배지 Markdown 복사

  5. Markdown을 README.md 파일에 붙여넣고, 파일을 저장하고, 변경 내용을 커밋하고 푸시합니다.

자세한 내용은 워크플로 상태 배지 추가를 참조하세요.

예제 테스트 워크플로 상태 배지

전달 실패 상태 없음
GitHub: 테스트 통과 배지 GitHub: 테스트 실패 배지 GitHub: 상태 없음 배지 테스트

참고하십시오

다음 단계