【问题标题】:Are test sources handled differently by CMake?CMake 对测试源的处理方式不同吗?
【发布时间】:2016-03-11 09:10:28
【问题描述】:

我正在使用 CMake 构建一个应用程序,它可以在文本模式和 GUI 模式 (Qt5) 下生成库和可执行文件,并进行课程单元测试。 我有经验,如果我修改测试源以外的任何内容,并且想要运行,CMake 会构建第一个新的可执行文件。如果我修改任何测试源, CMakes 会立即运行旧的可执行文件,因此我需要在运行新测试器之前显式编译它。测试位于单独的子目录中,结构与其他组件类似,源由

定义
set(MY_SRCS list of individual sources)

任何想法,什么会导致这种差异? (虽然这是一个细微差别)。

【问题讨论】:

    标签: c++ cmake googletest


    【解决方案1】:

    CTest 生成的make test 目标仅执行您使用add_test() 添加的测试,它不会构建它们。由于它不构建它们,因此它也不检查源文件中的更改。

    您可以通过添加一个自定义目标(例如make check)来解决此问题,该目标首先构建您的测试然后执行它们:CMake & CTest : make test doesn't build tests

    不确定这是否回答了问题,因为您没有指定如何创建和执行单元测试。

    【讨论】:

    • 我想你回答了我要找的东西。我只是使用 RUN_ALL_TESTS();
    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2016-06-14
    • 2021-07-18
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多