gpt4 book ai didi

c++ - 在 CLion 中默认运行谷歌测试时出错

转载 作者:行者123 更新时间:2023-12-01 14:22:46 31 4
gpt4 key购买 nike

因此,不幸的是,我不确定如何正确描述错误消息。
本质上,我正在尝试习惯谷歌测试, - 我想用它来测试我在 CLion 中的 C++ 项目。我创建了一个新的库项目,其中包含以下类:

#include "gtest/gtest.h"

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

并且:
#include "gtest/gtest.h"

TEST(MyTestCategory, Vec2DAdditionTest){
EXPECT_EQ(1, 1);
}

当然,这些测试根本没有用 - 但它只是为了看看一切是否都按照它应该的方式工作。
现在,当我尝试运行它们时,提示我以下错误:
6:46 PM Error running 'MyTestCategory.Vec2DAdditionTest': Cannot run 'MyTestCategory.Vec2DAdditionTest' on '<default>'

6:47 PM Error running 'All in main.cpp': Cannot run 'All in main.cpp' on '<default>'

我错过了什么?我无法运行测试 - 既不能单独运行,也不能直接运行在主函数上?
同样在此之后,构建/运行按钮在 CLion 中变灰,我必须右键单击 main.cpp 以强制它运行/编译..

必不可少的我有一个像这样的项目结构:
src/
a.cpp
b.cpp
CMakeLists.txt
test/
main.cpp
atests.cpp
CmakeLists.txt
CMakeLists.txt

我的测试项目的运行配置如下所示:

最佳答案

以下是如何在 CLion 项目中添加 GTest 的示例:

考虑一个与您所展示的非常相似的项目结构,但是,附加文件 CMakeLists.txt.intest文件夹。:

src/
a.cpp
b.cpp
CMakeLists.txt
test/
main.cpp
atests.cpp
CMakeLists.txt
CMakeLists.txt.in
CMakeLists.txt
CMakeLists.txt.in有助于在构建项目时下载 GTest 库并将其添加到项目中。
CMakeLists.txt.in的内容如下所示:
cmake_minimum_required(VERSION 2.8.2)

project(googletest-download NONE)

include(ExternalProject)
ExternalProject_Add(googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG master
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
test/CMakeLists.txt文件如下所示:
cmake_minimum_required(VERSION 3.10)

### START OF CONFIGURING GTEST
configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )

# Add googletest directly to our build. This defines
# the gtest and gtest_main targets.
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src
${CMAKE_CURRENT_BINARY_DIR}/googletest-build
EXCLUDE_FROM_ALL)
### END OF CONFIGURING GTEST

# Now simply link against gtest or gtest_main as needed. Eg

add_executable(test_${PROJECT_NAME} main.cpp atest.cpp)
target_link_libraries(test_${PROJECT_NAME} ${PROJECT_NAME} gtest gtest_main)
add_test(NAME test_PROJECT_NAME COMMAND test_${PROJECT_NAME})

CMakeLists.txt在根文件夹中有以下内容:
cmake_minimum_required(VERSION 3.10)
project(gtestTest)

set(CMAKE_CXX_STANDARD 14)

add_subdirectory(src)
add_subdirectory(test)

现在重新加载 CMake 配置并尝试运行 test_gtestTest运行单元测试的目标。
您还可以使用 CLion 的 gtest 模板创建自定义运行配置,以获得用户友好的测试报告。

有关使用 CLion 进行 GTest 的更多信息,请参阅:
  • Google Test Support in Clion
  • Building Google Tests with CMake
  • 关于c++ - 在 CLion 中默认运行谷歌测试时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62200053/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com