我有一个程序,它读取文件格式的描述(好奇的ISO 10303-11)并从中生成c ++。生成的代码被编译到库中,并且库与各种可执行文件链接以读/写该文件格式。
我已经设置了CMake来构建生成器程序并为配置时指定的任何文件格式生成库。
现在,我想添加测试。这些测试与构建过程中已经完成的步骤相同 - 我必须在CTest脚本中重做这些步骤,还是有办法告诉ctest构建目标并捕获任何错误消息?
答案 0 :(得分:3)
如果您使用的是最新版本的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。
答案 1 :(得分:0)
您是否尝试在enable_testing()
文件中说CMakeLists.txt
,然后致电add_test()
制作测试目标?如果您按照CMake文档,我认为您可以在一个整合的构建脚本中执行所有操作。