Я перенес файлы pro в файлы CMakeLists в основном проекте, и это прекрасно работает в VSCode.
Проблема Я столкнулся с проблемой интеграции модульных тестов, созданных с помощью QTest.
Чтобы упростить задачу и понять требования, я подготовил фиктивный проект, используя Qt5 (только ядро) и QTest для части модульного тестирования. Цель состоит в том, чтобы полностью запустить его под VSCode (сборка, отладка и запуск основного исполняемого файла и тестов). Основной исполняемый файл собирается и работает без сбоев, тест собирается, но показывает ошибку 0xc0000135, которая, как известно, связана с тем, что dll не найдена.
Вот структура проекта:
Код: Выделить всё
project folder
|- CMakeLists.txt
|
|- src |
| |- main.cpp
| |- myclass.cpp
|
|- include - myclass.hpp
|
|- tests |
|- main.cpp
|- test_myclass.hpp
|- test_myclass.cpp
Код: Выделить всё
cmake_minimum_required(VERSION 3.6)
project(cmake_qt_minimal VERSION 1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(QT_DIR "C:/Qt/5.15.2/mingw81_32/lib/cmake/Qt5")
set(Qt5_DIR "C:/Qt/5.15.2/mingw81_32/lib/cmake/Qt5")
find_package(Qt5 COMPONENTS REQUIRED Core Test)
set(Qt5Test_DIR "C:/Qt/5.15.2/mingw81_32/lib/cmake/Qt5Test")
find_package(Qt5Test REQUIRED)
enable_testing(true)
###################################################
#### main app #####################################
###################################################
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# creates a SOURCE variable containing the source files
set(SOURCES src/myclass.cpp)
# defines that an executable named with the project name must be created with given sources
add_executable(${PROJECT_NAME} ${SOURCES} src/main.cpp)
target_include_directories(${PROJECT_NAME} PRIVATE include)
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt5::Core
Qt5::Test
)
###############################################################################
## testing ####################################################################
###############################################################################
set(SOURCES_TEST
tests/test_myclass.cpp
tests/main.cpp)
add_executable(mytest ${SOURCES_TEST} ${SOURCES})
target_link_libraries(mytest PRIVATE
Qt5::Core
Qt5::Test)
target_include_directories(mytest PRIVATE include)
add_test(mytest mytest)
set_property(TEST mytest PROPERTY ENVIRONMENT_MODIFICATION
"PATH=path_list_append:$")
Подробнее здесь: https://stackoverflow.com/questions/784 ... test-cmake