我有一个使用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}")
答案 0 :(得分:1)
CLion当前不支持CTest。
FeatureRequest在此处:https://youtrack.jetbrains.com/issue/CPP-905(请上传!)
答案 1 :(得分:1)
您可以轻松配置CLion以使用CTest。只需复制测试目标的默认配置,并将其配置为使用CTest可执行文件,然后将工作目录设置为build目录:
详细信息:
import tkinter
from tkinter import *
def submit():
file = open('database.txt', 'w')
file.write('Username:', un, '\nPassword:', pw)
file.close()
wn = Tk()
wn.geometry('500x200')
Label(text='Geben Sie hier Ihren Benutzername ein:').pack()
username = Entry().pack()
Label(text='\n').pack()
Label(text='Geben Sie hier Ihr Passwort ein:').pack()
password = Entry().pack()
Label(text='\n').pack()
un = str(username.get())
pw = str(password.get())
btn = Button(text='Submit', command=submit).pack()
wn.mainloop()
,在类似UNIX的系统上,您可以使用/usr/bin/ctest
来找到它)which ctest
设置要使用的线程数量,然后设置要测试的可执行文件的名称,以及-j
设置出现问题时的测试输出-您可以简单地设置它到--output-on-failure
-r utCppProject -v
答案 2 :(得分:1)
由于CLion 2020.3 EAP CTest为supported from the box。