[英]Catch2 CLion error, "No tests were found"
我有一個像這樣的文件夾結構
我正在嘗試設置 Catch2,我的 CMake 文件如下所示:
最上面的 CMake:
cmake_minimum_required(VERSION 3.21)
project(throwaway)
set(CMAKE_CXX_STANDARD 14)
add_subdirectory(src)
add_subdirectory(tests)
add_executable(foo_main main.cpp)
target_link_libraries(foo_main PUBLIC foo_lib)
我的源src
:
add_subdirectory(foo)
我的src/foo
CMake:
add_library(foo_lib Foo.cpp)
我的tests
CMake:
add_subdirectory(foo)
add_executable(foo_test catch_runner.cpp)
target_link_libraries(foo_test PUBLIC
foo_test_lib)
我的tests/foo
CMake
add_library(foo_test_lib
FooTests.cpp)
target_link_libraries(foo_test_lib PUBLIC
foo_lib)
從那里,我使用 Clion 的 Catch2 集成將我的運行配置設置為
所以這里沒什么瘋狂的
我發現如果我將tests
CMake 編輯為
add_executable(foo_test catch_runner.cpp foo/FooTests.cpp)
target_link_libraries(foo_test PUBLIC foo_lib)
並且測試按預期工作。 但我顯然不想手動將每個文件添加到可執行文件中,我希望能夠創建一個庫,我可以將catch_runner
放入其中。
我不知道為什么當我將它作為庫鏈接時測試不起作用,但是當我手動添加它時它起作用。 有任何想法嗎?
從如何使用 Catch2 和 CMake 添加單獨的測試文件?
在我的tests/foo
CMake 中,我將其更改為
add_library(foo_test_lib OBJECT
FooTests.cpp)
target_link_libraries(foo_test_lib PUBLIC
foo_lib)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.