簡體   English   中英

Catch2 CLion 錯誤,“未找到測試”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM