Cmake /ctest:是否可以使用创建的构建目标作为测试
cmake/ctest: is it possible to use the creation of build targets as tests?
我有一个程序,它读取文件格式(ISO 10303-11)的描述,并从中生成c++。生成的代码被编译成一个库,该库与各种可执行文件链接以读取/写入该文件格式。
我有CMake设置构建生成器程序和生成库为任何文件格式在配置时指定。
现在,我想添加测试。这些测试与构建过程中已经完成的步骤相同—我是否必须在CTest脚本中重新执行这些步骤,或者是否有一种方法可以告诉CTest构建目标并捕获任何错误消息?
如果你使用的是最新的ctest版本(最新的官方版本是2.8.6),那么你可以使用add_test的NAME/COMMAND签名,结合cmake——build命令行选项,在你的构建树中构建特定的目标。
例如,假设有一个名为"tgt1"的自定义目标(或库或可执行目标):add_test(NAME test.build.tgt1
WORKING_DIRECTORY ${CMAKE_BINARY_DIRECTORY}
COMMAND ${CMAKE_COMMAND} --build . --target tgt1 --config $<CONFIGURATION>
)
这可以跨平台使用相同的语法。它甚至可以与多配置生成器一起工作,如Visual Studio和Xcode。
您是否尝试过在CMakeLists.txt
文件中说enable_testing()
,然后调用add_test()
来制作测试目标?如果你遵循CMake文档,我认为你可以在一个统一的构建脚本中做所有事情。
相关文章:
- 如何让KDevelop & CMake只构建特定目标?
- 指定 NDK 构建的目标架构
- 在多个目标上 CMake 后期构建自定义命令?
- 在QT中的大型项目中指定构建/目标/安装路径
- 在构建 Android 应用程序时禁用 CMake 目标
- CMake 将目标作为项目的一部分独立构建
- Cmake:如何构建自定义编译器二进制文件,然后将其用于某些目标?
- 当许多目标使用相同的C 源时,如何加快介子的构建
- 如何配置要使用默认的HTML包装器构建的Emscripten目标
- 致命错误LNK1112:通过 vcvarsall .bat x86 运行构建'X86'模块计算机类型'x64'与目标计算机类型冲突
- 如何只构建一个依赖项目标
- 制定目标需要32和64位的DLL构建
- Microsoft Visual Studio 2010 没有将构建工具放在 PATH 中以实现干净的目标?
- Scons VisualStudio,多个构建目标生成重复的NMakeOutput标签
- boost构建中的多个构建目标
- 在Qt中使用不同的模板构建目标
- Visual Studio C/C++ 中的多个构建目标
- EclipseCDT-带有现有代码的新Makefile项目-更改全局默认构建目标
- 由于错误条件,构建目标被跳过;("@(条件名称此处)" - 不确定如何更改
- Cmake /ctest:是否可以使用创建的构建目标作为测试