Doku:
Download 1.7.0:
https://code.google.com/p/googletest/downloads/list
https://code.google.com/p/googletest/downloads/detail?name=gtest-1.7.0.zip&can=2&q=
In MS VisualStudio integrieren:
Auspacken und in .\gtest-1.7.0\msvc\ die Solution gtest-md.sln aufmachen.
"The solution file with the -md suffix uses DLL versions of Microsoft runtime libraries,"
http://leefrancis.org/2010/11/17/google-test-gtest-setup-with-microsoft-visual-studio-2008-c/
Dort das Projekt gtest-md anpassen:
VS Plugin: https://visualstudiogallery.msdn.microsoft.com/9dd47c21-97a6-4369-b326-c562678066f0?SRC=VSIDE
Damit werden die Tests im VS Test Explorer gelistet.
Voraussetzung: Der Name der EXE muss mit *Test.exe übereinstimmen (Regex ist "[Tt]est[s]{0,1}.exe").
https://github.com/markusl/GoogleTestRunner/blob/master/GoogleTestRunner/GoogleTestDiscoverer.fs
Ergo: einfach in den Projektsettings den TargetName auf "$(ProjectName).Test" setzen.
Separater Testrunner: https://github.com/ospector/gtest-gbar
Doku zu GT: https://github.com/google/googletest/blob/master/googletest/docs/Documentation.md
Tests, die per default NICHT laufen sollen (perftests, etc.) müssen disabled werden, indem DISABLED_ vor den Namen gehängt wird.
https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md
Vor dem Kompilieren sollte man das File ./gtest-1.7.0/include/gtest/internal/gtest-port.h anschauen.
Dort am Anfang sind mehrere Makros beschrieben, die das Kompilieren beeinflussen (z.B. "GTEST_HAS_PTHREAD", "GTEST_LINKED_AS_SHARED_LIBRARY", "GTEST_CREATE_SHARED_LIBRARY", "GTEST_OS_AIX", "GTEST_OS_SOLARIS", etc.).
Ich habe GT wie folgt kompiliert:
Im Ordner "username@aix:/users/username/ProduktName/ProduktRelease/Code/external/gtest/gtest-1.7.0/gcc-AIX":
# Pfade zu den GCC-Libraries: GCC_IncludePath=/usr/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.8.1/include-fixed:/usr/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.8.1/include:/usr/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.8.1/include/c++/powerpc-ibm-aix6.1.0.0/pthread/ppc64:/usr/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.8.1/include/c++ # Pfade zu den AIX-Libraries: SYS_IncludePath=/usr/include:/usr/include/sys export INCLUDE=${GCC_IncludePath}:${SYS_IncludePath} export CPLUS_INCLUDE_PATH=${INCLUDE} export C_INCLUDE_PATH=${INCLUDE} export GTEST_DIR=.. # Kompilieren: # Mit dem Parameter "-isystem" (so steht es in der Doku) hat es nicht funktioniert, # stattdessen mit "-I${GTEST_DIR}/include" g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -pthread -D_AIX -DGTEST_HAS_PTHREAD=1 -mcpu=powerpc64 -maix64 -c -x c++ -std=c++11 -g -ggdb -w -fpermissive -fexceptions -fno-diagnostics-show-option -O0 -fPIC ${GTEST_DIR}/src/gtest-all.cc # Kontrolle: nm -g -X64 gtest-all.o | more # (Statische) Library bauen: ar -rv -X64 libgtest.a gtest-all.o # Kontrolle: nm -g -X64 libgtest.a | more
Für AIX:
Im Ordner "username@rhel:/users/username/ProduktName/ProduktRelease/Code/external/gtest/gtest-1.7.0/gcc-RHEL":
# Pfade zu den GCC-Libraries: GCC_IncludePath=/opt/rh/devtoolset-3/root/usr/include/c++/4.9.2 # Pfade zu den AIX-Libraries: SYS_IncludePath=/usr/include:/usr/include/sys export INCLUDE=${GCC_IncludePath}:${SYS_IncludePath} export CPLUS_INCLUDE_PATH=${INCLUDE} export C_INCLUDE_PATH=${INCLUDE} export GTEST_DIR=.. # Kompilieren: g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -pthread -m64 -c -x c++ -std=c++11 -g -ggdb -w -fpermissive -fexceptions -fno-diagnostics-show-option -O0 -fPIC ${GTEST_DIR}/src/gtest-all.cc # Kontrolle: nm -g gtest-all.o | less # (Statische) Library bauen: ar -rv libgtest.a gtest-all.o # Kontrolle: nm -g libgtest.a | less
Stand: 08.11.2016
EOF