mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-10-04 00:14:08 +00:00
添加单元测试,修复部分错误
This commit is contained in:
48
test/CMakeLists.txt
Normal file
48
test/CMakeLists.txt
Normal file
@ -0,0 +1,48 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(LuaCjApiTest)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# ==================== 核心修改 ====================
|
||||
# 1. 使用 add_subdirectory 直接包含 lib 源码目录
|
||||
# 这会自动继承 lib 中定义的 luacjapi 目标及其依赖路径
|
||||
# 无需手动检查文件是否存在,CMake 会处理整个依赖链
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../lib ${CMAKE_BINARY_DIR}/lib_build)
|
||||
|
||||
# ==================== 引入 Google Test ====================
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG v1.14.0
|
||||
GIT_SHALLOW ON
|
||||
)
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
|
||||
# ==================== 配置测试目标 ====================
|
||||
add_executable(test_lua_cj_api test_lua_cj_api.cpp)
|
||||
|
||||
# 2. 包含头文件路径
|
||||
# 注意:由于 lib 项目使用的是旧式 include_directories,这里需要显式添加
|
||||
# 或者更好的做法是修改 lib/CMakeLists.txt 使用 target_include_directories
|
||||
target_include_directories(test_lua_cj_api PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../lib
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../lib/lua
|
||||
)
|
||||
|
||||
# 3. 链接库
|
||||
# 直接链接 lib 项目导出的 luacjapi 目标。
|
||||
# CMake 会自动处理 RPATH、库搜索路径和传递依赖(如 lua、m 等)
|
||||
target_link_libraries(test_lua_cj_api PRIVATE
|
||||
luacjapi # 来自 lib 项目
|
||||
GTest::gtest_main
|
||||
pthread
|
||||
dl
|
||||
m
|
||||
)
|
||||
|
||||
# ==================== 注册测试 ====================
|
||||
enable_testing()
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(test_lua_cj_api)
|
||||
Reference in New Issue
Block a user