首页 > 解决方案 > 无法使用 Google Test 在 C++ 中成功设置单元测试

问题描述

我正在尝试使用谷歌测试来验证 C++ 中红黑树实现的一些测试。我正在关注这篇文章中评分最高的答案。我确定要说明 Google Test 的最新发行版是 1.10.0 版,而不是 1.8.0 版。我尝试安装和链接库的步骤如下:

首先,我得到了最新的谷歌测试框架,如下所示:

wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz

这成功安装。接下来,我可以在新的 googletest-release-1.10.0 文件夹中解压缩并构建 google test 的共享库。调用后调用make:

cmake -DBUILD_SHARED_LIBS=ON .

导致此消息:

[ 25%] Built target gtest
[ 50%] Built target gmock
[ 75%] Built target gmock_main
[100%] Built target gtest_main

该问题似乎发生在我将库中的标头复制到正确目录的步骤中。我可以做这个

 sudo cp -a googletest/include/gtest /usr/include

但我的系统无法在 googlemock/gtest 中找到文件:尝试复制这些文件:

sudo cp -a googlemock/gtest/libgtest_main.so googlemock/gtest/libgtest.so /usr/lib/

给我错误没有这样的文件存在:

cp: cannot stat 'googlemock/gtest/libgtest_main.so': No such file or directory
cp: cannot stat 'googlemock/gtest/libgtest.so': No such file or directory

标签: c++unit-testinggoogletest

解决方案


当你构建包时,你会得到一个这样的目录:

├── appveyor.yml
├── bin
├── BUILD.bazel
├── ci
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── CMakeLists.txt
├── CONTRIBUTING.md
├── CTestTestfile.cmake
├── googlemock
├── googletest
├── lib
├── library.json
├── LICENSE
├── Makefile
├── platformio.ini
├── README.md
└── WORKSPACE

您找不到的文件在lib文件夹中。

lib
├── libgmock_main.so
├── libgmock.so
├── libgtest_main.so
└── libgtest.so

推荐阅读