Testing 在CMake中传递正则表达式
我一直在看报纸 “安装和测试(步骤3)”部分包含以下测试脚本:Testing 在CMake中传递正则表达式,testing,cmake,Testing,Cmake,我一直在看报纸 “安装和测试(步骤3)”部分包含以下测试脚本: add_test (TutorialComp25 Tutorial 25) set_tests_properties (TutorialComp25 PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5") 根据CMake文档,add_test很简单,但我不知道它是如何工作的;尤其是这个“25是5” 听起来像 if (INPUT_ARG is OUTPUT_RESULT) test pa
add_test (TutorialComp25 Tutorial 25)
set_tests_properties (TutorialComp25
PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5")
根据CMake文档,add_test
很简单,但我不知道它是如何工作的;尤其是这个“25是5”
听起来像
if (INPUT_ARG is OUTPUT_RESULT)
test passed
else
test failed
是否正确?来自以下文件:
输出必须与此正则表达式匹配,测试才能通过
如果设置,测试输出将根据指定的正则表达式进行检查,并且至少有一个正则表达式必须匹配,否则测试将失败
教程示例的第一个测试(称为TutorialRuns
)没有设置任何属性。这意味着,如果Tutorial
exe在完成时返回0
,并且已通过参数25
,则CTest将视测试为已通过
在第二个测试中,调用
set_tests_properties (TutorialComp25 PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5")
表示运行参数为25
的Tutorial
exe的控制台输出必须包含字符串“25是5”
,才能视为通过。在这种情况下,将忽略返回值。由于测试exe输出:
The square root of 25 is 5
它过去了
记住,这是一个正在应用的正则表达式。如果将PASS\u正则表达式设置为例如“^25为5”
,测试将失败,因为这是在输出的开始处查找短语25为5
。在该命令的文档中有对CMake的regex语法的简要描述