我搜索了所有文档,但似乎无法找到使用CTEST_CUSTOM_PRE_TEST的单个示例。
基本上我需要在测试运行之前在服务器上启动并运行一些命令。所以我需要添加一些预测试步骤。 CTEST_CUSTOM_PRE_TEST的语法是什么?
CTEST_CUSTOM_PRE_TEST(???这里放什么???) ADD_TEST(MyTest MyTestCommand)
答案 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被破坏了)
找到代码答案 2 :(得分:1)
将set(CTEST_CUSTOM_PRE_TEST ..
放在一个文件中,该文件在cmake执行过程中被复制到${CMAKE_BINARY_DIR}/CTestCustom.cmake
。有关详细信息,请参阅https://stackoverflow.com/a/37748933/1017348。