你如何使用CTEST_CUSTOM_PRE_TEST?

时间:2010-12-09 13:30:19

标签: cmake ctest

我搜索了所有文档,但似乎无法找到使用CTEST_CUSTOM_PRE_TEST的单个示例。

基本上我需要在测试运行之前在服务器上启动并运行一些命令。所以我需要添加一些预测试步骤。 CTEST_CUSTOM_PRE_TEST的语法是什么?

CTEST_CUSTOM_PRE_TEST(???这里放什么???) ADD_TEST(MyTest MyTestCommand)

3 个答案:

答案 0 :(得分:6)

CTEST_CUSTOM_PRE_TEST是在运行ctest仪表板的上下文中使用的变量。它应该直接在ctest -S脚本本身中设置,或者在构建树顶部的CTestCustom.cmake文件中设置。

在任一文件中,示例值可能是:

set(CTEST_CUSTOM_PRE_TEST "perl prepareForTesting.pl -with-this -and-that")

它应该是一个命令行,格式正确,可以在您所在的系统上运行。在所有测试运行之前,它在ctest_test调用期间运行一次。同样,还有一个CTEST_CUSTOM_POST_TEST变量,它也应该是一个命令行,但在完成所有测试后运行。

使用空格,引号和反斜杠引用和转义args可能具有挑战性......但也许你也不需要它。

我不知道我能指出的一个真实世界的例子,但我可以阅读ctest源代码......; - )

答案 1 :(得分:1)

在无头linux上的OpenSCAD中,我们尝试在ctest运行之前启动虚拟帧缓冲。我们不会使用PRE_TEST。我们在“cmake”期间在构建目录中构建了自己的CTestCustom.cmake。跑。 (我们确实使用POST_TEST,但是有一些最新版本的cmake,其中POST_TEST被破坏了)

您可以在https://github.com/openscad/openscad/blob/master/tests

找到代码

答案 2 :(得分:1)

set(CTEST_CUSTOM_PRE_TEST ..放在一个文件中,该文件在cmake执行过程中被复制到${CMAKE_BINARY_DIR}/CTestCustom.cmake。有关详细信息,请参阅https://stackoverflow.com/a/37748933/1017348