c++ - 使用 CMake 的 CTest 在 CLion 中运行测试
问题描述
我有一个使用 CMake 的 C++ 项目。该项目建立在 CentOS 机器上。我已将 CLion 配置为从 MacOS 远程构建。我有项目的单元测试,我正在尝试从 CLion 运行它们。我可以使用 CTest 从 CentOS 机器运行测试,如下所示
ctest -r utCppProject -v
CLion 尝试使用 gtest 标志直接运行可执行文件,如下所示
./utCppProject --gtest_filter=* --gtest_color=no
Process finished with exit code 0
实际上没有运行任何测试。
如何配置 CLion 以使用 CTest 运行单元测试?
这是我的单元测试项目的 CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)
include(../../cmake-dependencies/Boost.cmake)
include(../../cmake-dependencies/GoogleTest.cmake)
set(CMAKE_BINARY_DIR "${CMAKE_CURRENT_LIST_DIR}/../build")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
include_directories(${GOOGLE_TEST_DIR}/googletest/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/.)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
set(TARGET utCppProject)
add_executable (
${TARGET}
utCppProject.cpp
)
target_link_libraries (
${TARGET}
CppProject
gtest
boost_system
pthread
)
set(CMAKE_CXX_FLAGS "-fPIC -DPIC -Wall -Werror -std=c++0x")
set(TEST_OUTPUT "${CMAKE_BINARY_DIR}/test_results/${TARGET}.xml")
add_test(${TARGET} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TARGET})
set_tests_properties(${TARGET} PROPERTIES
ENVIRONMENT
"UT_FOLDER_PATH=${CMAKE_CURRENT_SOURCE_DIR};GTEST_OUTPUT=xml:${TEST_OUTPUT}")
解决方案
由于 CLion 2020.3 EAP CTest已从包装盒中得到支持。
推荐阅读
- javascript - 在中添加 JSON 字符串 element, in Svelte REPL
I need one hartcoded JSON string in a template, like thes:
<template id="Todo"> [{ "todo":"Learn Svelte", "done":false },{ "todo":"Two", "done":false },{
- node.js - 为 child_process.spawn 选项提供一个字符串作为标准输入
- if-statement - Excel 多个条件 IF OR AND
- git - GitHub Actions: `git push` to CodeCommit fails after rebase
- python - 相同的代码,但一个超过了输出的时间限制,另一个工作得很好
- flutter - 如何完整显示文本(Flutter)?
- directshow - 在directshow的预览窗口上写文字?
- jdbc - 通过 impala jdbc 在 kudu 上创建表
- python - 我如何做到这一点,当我单击带有从选项菜单中选择的项目的按钮时,将显示一个标签
- css - ReactJS - 如何设置父级样式?