我们为CMake创建了多个附加函数。它们变得相当多,我们需要(单元)测试它们。
有一些简单的,只有一些变量的基础,比如:
function(join_list LIST GLUE)可以使用检查结果的自定义CMake脚本对其进行测试。为此,我们还编写了一组assert宏。
当函数是基于目标的时,这会变得更加困难:
function(target_my_custom_property_set TARGET VALUE)我们需要一个需要配置的多个CMakeLists.txt文件。配置必须成功或失败,并显示指定的消息。此外,还必须检查结果文件。
我想知道,有没有更简单的方法?有没有现有的框架?Kitware如何测试已交付的模块?
发布于 2018-12-24 10:09:20
ctest是用于运行各种测试的框架。作为CMake Testing Process的一部分,有许多针对cmake的测试。这些测试是Tests文件夹中源代码的一部分,也是CMakeLists.txt的一部分。
您要查看的特定测试位于RunCMake文件夹中。这些测试利用RunCMake.cmake。message中的测试就是一个很好的例子。这些测试所做的是利用execute_process捕获cmake的输出,并将cmake配置步骤的输出与具有预期输出的文件的内容进行比较。来自cmake的返回值也会被返回,并且可以进行测试。
你不需要指定什么是“结果文件”。还有一些更复杂的示例,即执行配置并构建和扫描一些文件来验证其中的内容。
如果您在失败的配置、失败的构建、传递的配置和构建以及特定的输出消息中分离检查消息,可能会更容易。
https://stackoverflow.com/questions/51948060
复制相似问题