【发布时间】:2016-03-03 15:00:49
【问题描述】:
我正在使用 CMake 和 ctest 来生成软件测试。
举个例子,我有一个二进制 foo 它正好是三个输入参数
p1,p2,p3。参数范围为 0-2。
使用p1、p2、p3 的所有可能组合检查我的二进制文件foo
我在我的 CMakeList.txt 中执行以下操作
foreach(P1 0 1 2)
foreach(P2 0 1 2)
foreach(P3 0 1 2)
add_test(foo-p1${P1}-p2${P2}-p3${P3} foo ${P1} ${P2} ${P3})
endforeach(P3)
endforeach(P2)
endforeach(P3)
是否有更“优雅”的方式来生成所有这些不同的测试?
假设 foo 需要 10 个参数 p1,...,p10 这看起来很可怕。
提前致谢。
【问题讨论】:
-
您没有错过在
add_test()命令行中对foo本身的调用吗?关于您的问题,我不知道add_test()命令中有任何“参数范围”选项。所以我认为你不能在 CMake 中进一步优化它。 -
是的,你是对的,我编辑了我的帖子
-
一个小的优化是在
foreach()中使用RANGE,比如foreach(P1 RANGE 0 2)。这些东西用于迭代测试参数by CMake itself。