2

我们为 CMake 创建了多个附加功能。它们变得很多,我们需要(单元)测试它们。

有一些简单的,只有可变的基础,例如:

function(join_list LIST GLUE)

这些可以使用自定义 CMake 脚本进行测试,以检查结果。为此,我们还编写了一组断言宏。

当函数基于目标时,这变得更加困难:

function(target_my_custom_property_set TARGET VALUE)

我们需要一个需要配置的多个 CMakeLists.txt 文件。配置必须成功或失败并显示指定消息。还必须检查结果文件。

我想知道,有没有更简单的方法?有现成的框架吗?Kitware 如何测试出厂的模块?

4

1 回答 1

2

ctest是运行各种测试的框架。作为CMake 测试过程的一部分,有许多测试可以运行。这些测试是Tests文件夹中源代码的一部分,并且是.cmakeCMakeLists.txt

您要查看的特定测试位于该RunCMake文件夹中。这些测试利用RunCMake.cmake. 一个很好的例子是message. 这些测试所做的是利用execute_process捕获输出cmake并将cmake配置步骤的输出与具有预期输出的文件的内容进行比较。from 的返回值cmake也被返回并且可以被测试。

您没有指定什么是“结果文件”。有一些更复杂的示例,执行配置并构建和扫描一些文件以验证其中的内容。

如果您将失败的配置、失败的构建、通过的配置和构建以及特定的输出消息中的检查消息分开,可能会更容易。

于 2018-12-24T02:09:19.933 回答