본문 바로가기
Azure

.NET 6 API with Azure Pipeline] 1. WEB API, Unit Test 프로젝트 생성

by Fastlane 2022. 5. 19.
728x90
반응형

출처 : https://dotnetplaybook.com/build-test-and-deploy-a-rest-api-with-azure-devops/

CI/CD Pipeline

Continuous integration -> Continuous delivery -> Continuous deployment

Plan -> Code -> Build -> Test -> Release -> Deploy -> Operate -> Monitor

 

Code를 GitHub에 올리면, Azure DevOps에서 전달받아 코드를 빌드하고, Unit Test를 실행하고, Release하기 위해 package한다. 그 다음 Azure에 Deploy된다. 

GitHub대신에 Azure DevOps나 GitLab 사용이 가능하고, Azure 대신 Amazon을 사용할 수도 있다. 

WebAPI 프로젝트와 UnitTest 프로젝트를 가진 솔루션을 구성해보자. 

visual studio code의 TERMINAL 탭에서 아래 Command를 실행한다. 

PS C:\Users\admin\source\repos> mkdir SimpleAPISln
PS C:\Users\admin\source\repos> cd Sim*
PS C:\Users\admin\source\repos\SimpleAPISln> mkdir test
PS C:\Users\admin\source\repos\SimpleAPISln> mkdir src
PS C:\Users\admin\source\repos\SimpleAPISln> ls
PS C:\Users\admin\source\repos\SimpleAPISln> cd s*
PS C:\Users\admin\source\repos\SimpleAPISln\src> dotnet new webapi -n SimpleAPI
"ASP.NET Core Web API" 템플릿이 성공적으로 생성되었습니다.

생성 후 작업 처리 중...
C:\Users\admin\source\repos\SimpleAPISln\src\SimpleAPI\SimpleAPI.csproj에서 'dotnet restore' 실행 중 ...
  복원할 프로젝트를 확인하는 중...
PS C:\Users\admin\source\repos\SimpleAPISln\src>
PS C:\Users\admin\source\repos\SimpleAPISln> cd testPS C:\Users\admin\source\repos\SimpleAPISln\test> dotnet new xunit -n SimpleAPI.Test
"xUnit Test Project" 템플릿이 성공적으로 생성되었습니다.
PS C:\Users\admin\source\repos\SimpleAPISln\test\SimpleAPI.Test> cd..
PS C:\Users\admin\source\repos\SimpleAPISln\test> cd..
PS C:\Users\admin\source\repos\SimpleAPISln> dotnet new sln --name SimpleAPISln
PS C:\Users\admin\source\repos\SimpleAPISln> dotnet sln SimpleAPISln.sln add src/SimpleAPI/SimpleAPI.csproj test/SimpleAPI.Test/SimpleAPI.Test.csproj    
'src\SimpleAPI\SimpleAPI.csproj' 프로젝트가 솔루션에 추가되었습니다.
'test\SimpleAPI.Test\SimpleAPI.Test.csproj' 프로젝트가 솔루션에 추가되었습니다.
PS C:\Users\admin\source\repos\SimpleAPISln> dotnet add test/SimpleAPI.TEST/SimpleAPI.TEST.csproj reference src/SimpleAPI/SimpleAPI.csproj
프로젝트에 '..\..\src\SimpleAPI\SimpleAPI.csproj' 참조가 추가되었습니다.

SimpleAPI 프로젝트와, SimpleAPI.Test 프로젝트를 생성하고, Unit 프로젝트에 API 프로젝트 참조를 추가하였다. 

 

Visual Studio Code에서 솔루션을 열고 아래와 같이 파일을 수정한다. 

using Xunit;
using SimpleAPI.Controllers;
using System.Collections.Generic;

namespace SimpleAPI.Test;

public class UnitTest1
{

    WeatherForecastController controller = new WeatherForecastController();

    [Fact]
    public void GetReturnsMyName()
    {
        var returnValue = controller.Get();

        
        int result = 0;
        using (IEnumerator<WeatherForecast> enumerator = returnValue.GetEnumerator())
        {
            while (enumerator.MoveNext())
                result++;
        }
        

        Assert.Equal(5, result);
    }

    /*
    [Fact]
    public void Test1()
    {

    }
    */
    
}

 

내용은, WeatherForecastController.cs 파일의 Get method의 결과 리스트의 count가 5개인지 확인하는 내용이다. 

테스트를 실행해보자. 

PS C:\Users\admin\source\repos\SimpleAPISln\test\SimpleAPI.Test> dotnet test
  복원할 프로젝트를 확인하는 중...
  복원할 모든 프로젝트가 최신 상태입니다.
  SimpleAPI -> C:\Users\admin\source\repos\SimpleAPISln\src\SimpleAPI\bin\Debug\net6.0\SimpleAPI.dll
  SimpleAPI.Test -> C:\Users\admin\source\repos\SimpleAPISln\test\SimpleAPI.Test\bin\Debug\net6.0\SimpleAPI.Test.dll
C:\Users\admin\source\repos\SimpleAPISln\test\SimpleAPI.Test\bin\Debug\net6.0\SimpleAPI.Test.dll(.NETCoreApp,Version=v6.0)에 대한 테스트 실행
Microsoft (R) Test Execution Command Line Tool Version 17.1.0
Copyright (c) Microsoft Corporation. All rights reserved.

테스트 실행을 시작하는 중입니다. 잠시 기다려 주세요...
지정된 패턴과 일치한 총 테스트 파일 수는 1개입니다.

통과!  - 실패:     0, 통과:     1, 건너뜀:     0, 전체:     1, 기간: < 1 ms - SimpleAPI.Test.dll (net6.0)

TEST 성공한 것을 확인할 수 있다. 

 

소스를 Github에 올려보자.

PS C:\Users\admin\source\repos\SimpleAPISln> git --version
git version 2.33.1.windows.1
PS C:\Users\admin\source\repos\SimpleAPISln> git init
PS C:\Users\admin\source\repos\SimpleAPISln> git add .
PS C:\Users\admin\source\repos\SimpleAPISln> git commit -m "Initial Commit"
PS C:\Users\admin\source\repos\SimpleAPISln> git remote add origin https://github.com/repository.git
PS C:\Users\admin\source\repos\SimpleAPISln> git branch -M main
PS C:\Users\admin\source\repos\SimpleAPISln> git push -u origin main

 

Git repository에서 소스 코드를 확인할 수 있다. 

 

 

 

 

728x90
반응형

댓글