반응형

Intro


안녕하세요. 이번 포스팅에서는 Visual studio2019 C++ 프로젝트에서 Unit test framework 중 하나인 Google test 연동 방법에 대해 포스팅하겠습니다. Google Test는 C++ Unit test에서 많이 쓰이는 framework입니다. 잘만 활용한다면 개발자의 실수를 최소화 할 수 있고 경건한 프로그램을 만들 수 있습니다.

Visual studio2019 google test 연동방법


1) 테스트 프로젝트 생성테스트 할 프로젝트를 생성하고 코드를 작성해줍니다. 간단한 테스만 수행하기 위해 math class에 메서드로 sum과 multiply을 구현 하였습니다.


math.h
class math
{
public:
    int math::sum(int a, int b);
    int math::multiply(int a, int b);

}

간단하게 sum함수와 multiply함수를 테스트해보겠습니다.

 math.c

 #include "math.h"
int math::sum(int a, int b)
{
    return a + b;
}
int math::multiply(int a, int b)
{
    return a * b;

}
     (adsbygoogle = window.adsbygoogle || []).push({});

2) lib파일 생성 (구성 형식. exe -> lib 변경)exe파일이 아닌 lib파일로 변경하는 이유는 테스트 할 프로젝트 솔루션의 header만 가져다 쓰기 위해서입니다.

3) Google test 프로젝트 생성

3-1) 새 프로잭트 생성

3-2) Google Test 선택

3-3) 프로젝트 생성

3-4) 프로젝트 생성옵션 선택 (정적 라이브버리(.lib), 동적으로 연결 선택)

3-5) 처음 Google Test 프로젝트 만들었을 때 화면

3-6) 시작 프로잭트 변경. 프로젝트 -> 속성 -> 시작 프로젝트 -> Sample-Test1 변경

3-7) 기본 빌드 결과

4) Test 프로젝트 연동

4-1) 링커 경로 포함 (google test project -> 속성 -> 링커 -> 일반 -> 추가 라이브러리 디렉터리 -> ..\x64\Debug 추가)

4-2) lib파일 추가. 테스트할 프로젝트의 lib파일 추가하기 위한 lib path입니다.링커 -> 입력 -> 추가 종속성 -> 라이브러리 추가 (gtest.lib, gtest_maind.lib, Unit_Test.lib)

gtest.lib와 gtest_maind.lib는 google test에 포함되어 있는 lib입니다. lib path는 개인 마음대로입니다. 저는 따로 만들기 귀찮아서 저 폴더에 넣었습니다.

5) Test case 작성

5-1) test case 작성테스트할 프로젝트의 header을 include 하고 test case를 작성합니다. 결과를 보면 1번 case와 3번 case는 통과하게 하였고, 2번 case와 4번 case는 실패하게 케이스를 작성했습니다. 정상적으로 unit test가 수행됨을 확일 할 수 있습니다.

5-2) 빌드 결과

5-3) 테스크 탐색기 결과 (테스트 -> 테스트 탐색기)

6) 결과물 xml 파일로 만들기

자 이제 마지막입니다. test 한 산출물을 xml 파일로 만들어야 합니다.

6-1) visual studio에서 xml 파일 만들기

속성-> 구성 속성 -> 명령 인수 (--gtest_output=xml:..\x64\Debug\result.xml 입력)

결과

6-2) cmd에서 xml 파일 만들기

xml 파일 만들기는 명령 프롬프트로도 확인이 가능합니다

test실행 파일이 있는 폴더로 이동

Sample-Test 1.exe --gtest_output=xml:result2.xml 커맨드 입력

결과가 똑같이 만들어짐을 확일 할 수 있습니다. 보통 기업에서는 xml파일을 가공해서 산출물을 관리하기도 합니다. git에서 찾아보면 xml을 html코드로 바꾸는 방법이 많이 나와있습니다. 그쪽 참조해보시면 될 것 같습니다.

마무리


이번 포스팅에서는 visual studio 2019에서 Google Unit Test 하는 방법에 대해 알아 보았습니다. Unit test는 실제 개발자의 실수를 줄여줄 수 있는 방법입니다. 그리고 개인적으로 배포 전 꼭 거쳐야 하는 과정이라고 생각합니다.

그럼 이만 포스팅을 마치겠습니다.

감사합니다.

반응형

+ Recent posts