구글테스트는 어떻게 설치하나요?

구글테스트는 어떻게 설치하나요?

나는 검색했다구글테스트muon을 사용하고 있지만 우분투에는 해당 패키지가 없는 것 같습니다. 소스를 사용하여 설치해야 합니까?

답변1

새로운 정보:

libgtest0이 더 이상 존재하지 않는다는 점은 주목할 가치가 있습니다. 2013년쯤 현재(변경 날짜는 확실하지 않음) 다음 질문을 참조하세요.

Google 테스트용 라이브러리 파일이 설치되지 않은 이유는 무엇입니까?


2012년 이전의 이전 답변:

우분투 저장소에 있습니다

sudo apt-get install libgtest0 libgtest-dev

또한보십시오남자 gtest-config

답변2

최소한의 실행 가능한 예

Debian/Ubuntu는 다음에 언급된 대로 사전 빌드된 패키지를 거부하므로:Google 테스트용 라이브러리 파일이 설치되지 않은 이유는 무엇입니까?그냥 직접 복제하고 빌드하겠습니다(또는 실제 프로젝트에서는 하위 모듈로 추가).

git clone https://github.com/google/googletest
cd googletest
git checkout b1fbd33c06cdb0024c67733c6fdec2009d17b384
mkdir build
cd build
cmake ..
make -j`nproc`
cd ../..

그런 다음 테스트 파일과 함께 사용합니다 main.cpp.

g++ \
  -Wall \
  -Werror \
  -Wextra \
  -pedantic \
  -O0 \
  -I googletest/googletest/include \
  -std=c++11 \
  -o main.out \
  main.cpp \
  googletest/build/lib/libgtest.a \
  -lpthread \
;

메인.cpp

#include <gtest/gtest.h>

int myfunc(int n) {
    return n + 1;
}

TEST(asdfTest, HandlesPositiveInput) {
    EXPECT_EQ(myfunc(1), 2);
    EXPECT_EQ(myfunc(2), 3);
}

int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

예상되는 출력을 얻으려면 다음을 수행하십시오.

[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from asdfTest
[ RUN      ] asdfTest.HandlesPositiveInput
[       OK ] asdfTest.HandlesPositiveInput (0 ms)
[----------] 1 test from asdfTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[  PASSED  ] 1 test.

main또는 파일 에서 함수를 제거할 수도 있습니다 main.cpp.에서 제공하는 기본 항목을 사용하세요.libgtest_main.a:

g++ \
  -Wall \
  -Werror \
  -Wextra \
  -pedantic \
  -O0 \
  -I googletest/googletest/include \
  -std=c++11 \
  -o main.out \
  main.cpp \
  googletest/build/lib/libgtest.a \
  googletest/build/lib/libgtest_main.a \
  -lpthread \
;

우분투 20.04에서 테스트되었습니다.

관련 정보