Skip to content

Latest commit

 

History

History
136 lines (98 loc) · 4.26 KB

0-1. CLion에서 Assert 적용하기, 테스트 코드 작성법.md

File metadata and controls

136 lines (98 loc) · 4.26 KB

CLion에서 Assert 적용

assert.h 위키피디아

CLion에서 CMake Profiles 관련 문서

CMake Profiles를 수정해서 Debug, Release 등 여러 설정이 가능하다.

기본적으로 Debug라서 assert 함수가 적용된다. Release로 설정하면 assert가 제외되어 컴파일한다.

assert를 사용할 때 주의할 점이 있는데, assert 문 자체가 Debug가 아니면 없어진다.
그래서 assert문 내부에 항상 실행되어야 하는 함수를 넣으면 안된다.

테스트 코드

적용해보고 깃헙 링크 남기기

GPT 설명

CTest는 CMake와 함께 기본적으로 제공되는 테스트 도구로, C++ 프로젝트에서 테스트를 작성하고 관리하는 데 유용합니다. Google Test와 같은 외부 프레임워크를 사용할 필요 없이 CTest만으로도 충분히 강력한 테스트 환경을 구축할 수 있습니다. 아래는 CTest를 사용하여 테스트 코드를 작성하고 실행하는 방법입니다.

CTest를 사용한 테스트 코드 작성

프로젝트 구조 설정

프로젝트 디렉토리는 다음과 같은 구조로 설정할 수 있습니다.

my_project/
├── CMakeLists.txt
├── src/
│   └── main.cpp
├── include/
│   └── my_project.h
└── tests/
    ├── CMakeLists.txt
    └── test_main.cpp

CMake 설정

루트 CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(MyProject)

set(CMAKE_CXX_STANDARD 11)

# 소스 및 헤더 파일 포함
include_directories(include)
add_subdirectory(src)
add_subdirectory(tests)

# CTest 활성화
enable_testing()
src/CMakeLists.txt
# 소스 파일 추가
add_library(MyProjectLib main.cpp)

# 실행 파일 추가 (필요시)
add_executable(MyProjectExecutable main.cpp)
target_link_libraries(MyProjectExecutable MyProjectLib)
tests/CMakeLists.txt
# 테스트 파일 추가
add_executable(MyProjectTests test_main.cpp)

# MyProject 라이브러리 링크
target_link_libraries(MyProjectTests MyProjectLib)

# 테스트 추가
add_test(NAME ExampleTest COMMAND MyProjectTests)

테스트 코드 작성

tests/test_main.cpp

#include <iostream>
#include "my_project.h"

int main() {
    // 간단한 테스트 예제
    if (1 + 1 != 2) {
        std::cerr << "Test failed: 1 + 1 != 2" << std::endl;
        return 1;
    }
    std::cout << "All tests passed!" << std::endl;
    return 0;
}

결과에 따라 0,1 반환

빌드 및 테스트 실행

mkdir build
cd build
cmake ..
make
ctest

설명

  1. 루트 CMakeLists.txt:

    • enable_testing()을 호출하여 CTest를 활성화합니다.
    • add_subdirectory()를 사용하여 소스 및 테스트 디렉토리를 추가합니다.
  2. src/CMakeLists.txt:

    • 라이브러리 및 실행 파일을 정의합니다.
  3. tests/CMakeLists.txt:

    • 테스트 실행 파일을 추가합니다.
    • add_test()를 사용하여 CTest에 테스트를 등록합니다.
  4. 테스트 코드 (tests/test_main.cpp):

    • 간단한 테스트를 포함하는 실행 파일을 작성합니다. 이 예제에서는 1 + 1이 2인지 확인하는 테스트를 포함합니다.

이렇게 하면 CTest를 사용하여 C++ 프로젝트에서 테스트를 작성하고 실행할 수 있습니다. 더 복잡한 테스트와 다양한 테스트 케이스를 추가할 수 있으며, CTest를 통해 일관되게 테스트를 관리할 수 있습니다.

참고 자료

이 자료들을 참고하여 CTest를 활용한 테스트 환경을 더욱 깊이 이해하고 활용할 수 있습니다.