CMake 是否以不同方式处理测试源?
Are test sources handled differently by CMake?
我正在使用 CMake 构建一个应用程序,它以文本模式和 GUI 模式 (Qt5) 生成库和可执行文件,并进行单元测试。
我有经验,如果我修改除测试源之外的任何内容,并且想要 运行,CMake 将首先构建新的可执行文件。如果我修改任何测试源,
CM 立即 运行s 旧的可执行文件,所以我需要在 运行 之前显式编译新的测试程序。测试在单独的子目录中,结构与其他组件的结构相似,源由
定义
set(MY_SRCS list of individual sources)
知道吗,是什么导致了这种差异? (虽然这是一个细微差别)。
CTest 生成的 make test
目标仅执行您使用 add_test()
添加的测试,它不会构建它们。由于它不构建它们,因此也不检查源文件中的更改。
您可以通过添加自定义目标(例如 make check
)来解决此问题,该目标首先构建您的测试然后执行它们:CMake & CTest : make test doesn't build tests.
不确定这是否回答了问题,因为您没有指定如何创建和执行单元测试。
我正在使用 CMake 构建一个应用程序,它以文本模式和 GUI 模式 (Qt5) 生成库和可执行文件,并进行单元测试。 我有经验,如果我修改除测试源之外的任何内容,并且想要 运行,CMake 将首先构建新的可执行文件。如果我修改任何测试源, CM 立即 运行s 旧的可执行文件,所以我需要在 运行 之前显式编译新的测试程序。测试在单独的子目录中,结构与其他组件的结构相似,源由
定义set(MY_SRCS list of individual sources)
知道吗,是什么导致了这种差异? (虽然这是一个细微差别)。
CTest 生成的 make test
目标仅执行您使用 add_test()
添加的测试,它不会构建它们。由于它不构建它们,因此也不检查源文件中的更改。
您可以通过添加自定义目标(例如 make check
)来解决此问题,该目标首先构建您的测试然后执行它们:CMake & CTest : make test doesn't build tests.
不确定这是否回答了问题,因为您没有指定如何创建和执行单元测试。