You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

首次使用CTest(CMake)项目遇‘未找到测试’错误求解决

解决CTest提示“No tests were found!!!”的问题
  • 先完成构建再运行CTest
    确保在执行CTest前,已经完成了CMake配置和项目构建。在Visual Studio中先点击「生成」整个项目,保证tester可执行文件被正确编译;如果用命令行,先执行cmake --build .完成构建,再运行ctest。

  • 检查enable_testing()的有效性
    enable_testing()必须放在所有add_test()调用之前,且不能被条件语句(如if())包裹导致未执行。如果项目有子目录,该命令需放在根CMakeLists.txt中,或在包含测试的子目录CMakeLists.txt内(需被add_subdirectory()引入)。

  • 修正add_test()的参数
    多配置环境(如Visual Studio的Debug/Release)下,直接用目标名可能存在路径问题,建议改用生成器表达式指定可执行文件路径:

    add_test(NAME Tester COMMAND $<TARGET_FILE:tester>)
    

    确保add_test的目标名和add_executable定义的tester完全一致。

  • 验证tester.cpp的测试逻辑
    确保测试文件包含可被CTest识别的逻辑,至少保证可执行文件能返回正确退出码(0为通过,非0为失败)。示例基础测试代码:

    #include <cstdlib>
    int main() {
        int result = 1 + 1;
        return (result == 2) ? EXIT_SUCCESS : EXIT_FAILURE;
    }
    
  • 查看CTest详细日志定位问题
    运行CTest时添加-v参数(ctest -v),或在Visual Studio中右键RUN_TESTS目标选择「生成」,查看输出窗口的详细日志,确认是否存在可执行文件找不到、测试执行报错等具体问题。

  • 清理CMake缓存重新配置
    在Visual Studio中右键项目选择「删除CMake缓存」,然后重新加载配置并构建项目,避免缓存导致的配置异常。

内容的提问来源于stack exchange,提问作者Michel Keijzers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 00:45:35