ctest 抱怨 "No test configuration file found!"

ctest complains "No test configuration file found!"

使用 CMake 我尝试使用 CTest 执行一个简单的测试。我将此配置全部放在一个目录中(${CMAKE_SOURCE_DIR}):

~$ cat hello.cpp
#include <iostream>

int main() {
    std::cout << "hello world\n";
    return(0);
}

~$ cat CMakeLists.txt
cmake_minimum_required(VERSION 3.18)
project(TEST_CTEST)

enable_testing()
add_executable(test_ctest hello.cpp)
add_test(my_test ./build/test_ctest)

然后我执行:

~$ rm -rf Testing/ build/
~$ cmake -S . -B build
~$ cmake --build build
~$ ./build/test_ctest
hello world

~$ ctest
*********************************
No test configuration file found!
*********************************
Usage

  ctest [options]

我在其他问答中找到的唯一提示是将 enable_testing() 放入根目录 CMakeLists.txt。我觉得我只是漏掉了一点东西,但我找不到什么。

如何 运行 使用 CTest 进行测试?

enable_testing() 在构建目录中创建ctest 配置文件。要找到此文件,ctest 需要来自 build 目录的 运行。

来自源目录的

运行 ctest 没有任何意义,因为它看不到 CMake 的结果(除非您进行源代码构建)。