반응형
1. GTEST(Google Test) 실행 플래그 옵션
- GTEST의 실행 플래그 옵션을 명령인수로 사용하는 방법은 다음 페이지에 정리되어 있습니다.
2. 소스 코드 안에서 실행 플래그 설정 방법
- 명령 인수가 아닌 소스 코드 안에서 플래그를 설정할 수 있습니다.
- ::testing::GTEST_FLAG()를 사용합니다.
- gtest.h 헤더 파일에 사용 가능한 옵션이 정의되어 있습니다.
3. GTEST 소스 코드 안에서 실행 플래그 옵션 설정
3.1. ::testing::GTEST_FLAG(list_tests)
- 테스트를 수행할 목록 리스트를 출력합니다.
- 테스트를 수행하지 않습니다.
- 소스 코드
int main(int argc, char **argv) { g_Env = new CEnvironment(); ::testing::GTEST_FLAG(list_tests) = true; // true 면 수행 목록 출력, false면 동작 안함 ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
3.2. ::testing::GTEST_FLAG(filter)
- [테스트 케이스 이름].[테스트 이름]을 입력하면 해당 테스트만 수행한다.
- 앞에 "-"를 붙이면 해당 테스트를 수행하지 않는다.
- 이름 대신 와일드카드(*,?)를 사용할 수 있다.
- 소스 코드
int main(int argc, char **argv) { char szFilter[] = "DIV*"; g_Env = new CEnvironment(); ::testing::GTEST_FLAG(filter) = szFilter; ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
3.3. ::testing::GTEST_FLAG(also_run_disabled_tests)
- DISABLED_ 로 실행을 막아둔 테스트 실행 여부를 설정합니다.
- 소스 코드
int main(int argc, char **argv) { g_Env = new CEnvironment(); ::testing::GTEST_FLAG(also_run_disabled_tests) = true; //flase 면 disabled 된 테스트 케이스 수행 안함 ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
3.4. ::testing::GTEST_FLAG(repeat)
- 에러 확률이 낮은 경우 여러 번 반복하여 테스트를 수행해야 되는데, 이 경우에 사용합니다.
- COUNT로 입력한 횟수만큼 테스트를 반복합니다.
- 소스 코드
int main(int argc, char **argv) { char szFilter[] = "DIV*"; g_Env = new CEnvironment(); ::testing::GTEST_FLAG(repeat) = 2; // 2번 반복 ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
3.5. ::testing::GTEST_FLAG(shuffle), ::testing::GTEST_FLAG(random_seed)
- 프로그램에서 임의의 순서로 테스트를 실행할 때 사용합니다.
- 현재 시간에서 계산된 임의의 시드를 사용합니다.
- 랜덤 시드를 명시적으로 지정하려면 --gtest_random_seed=[NUMBER]를 사용합니다. (NUMBER는 0~99999)
- 소스 코드
int main(int argc, char **argv) { char szFilter[] = "DIV*"; g_Env = new CEnvironment(); ::testing::GTEST_FLAG(shuffle) = true; // false면 셔플 사용 X ::testing::GTEST_FLAG(random_seed) = 2; // seed 2 사용 ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
3.6. ::testing::GTEST_FLAG(color)
- 터미널 출력의 컬러를 설정합니다.
- 기본 값은 auto입니다.
- auto에서 비 Window 플랫폼에서는 TERM 환경 변수에 xterm 또는 xterm-color가 설정된 경우 색상을 출력합니다.
- 소스 코드
int main(int argc, char **argv) { char szFilter[] = "DIV*"; g_Env = new CEnvironment(); ::testing::GTEST_FLAG(color) = "no"; //yes : 컬러 사용, no : 컬러 사용 x, auto : 자동 ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
3.7. ::testing::GTEST_FLAG(print_time)
- gtest는 기본값으로 테스트의 수행 시간을 출력하는데, 해당 옵션을 사용하면 수행 시간을 출력하지 않습니다.
- 소스 코드
int main(int argc, char **argv) { char szFilter[] = "DIV*"; g_Env = new CEnvironment(); ::testing::GTEST_FLAG(print_time) = false; // true : 수행시간 출력, false : 수행시간 출력 X ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
3.8. ::testing::GTEST_FLAG(output)
- 프로그램 수행 결과에 대한 보고서를 XML 형태로 저장합니다.
- 생성하려는 경로에 동일한 파일이 존재하면 덮어쓰지 않도록 파일 이름에 시퀀스를 추가합니다.
- 소스 코드
int main(int argc, char **argv) { char szFilter[] = "DIV*"; g_Env = new CEnvironment(); ::testing::GTEST_FLAG(output) = "xml:./"; ::testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(g_Env); return RUN_ALL_TESTS(); }
- 수행 결과
- 소스 코드
4. 참고
- Google Test Documentation Page : https://google.github.io/googletest/
반응형
'GTEST' 카테고리의 다른 글
[GTEST] "--gtest_filter" 옵션으로 설정한 테스트 케이스가 존재하지 않는 경우 오류 처리 방법 (2) | 2023.11.30 |
---|---|
[GTEST] GTEST(Google Test) 명령 인수를 사용한 실행 플래그 옵션 정보 (0) | 2023.11.22 |