【问题标题】:Cmake Ctest check substring onlyCmake Cte​​st 仅检查子字符串
【发布时间】:2021-09-06 08:50:42
【问题描述】:

我对 cmake ctest 有疑问。我正在检查完整字符串中的子字符串。但是遇到了找不到字符串的问题。如何指定只查找子字符串,而不是完整的字符串?

neg_message="App error: Error code=5"
set_tests_properties(test_app PROPERTIES
        FAIL_REGULAR_EXPRESSION "${neg_message}")

App error: Error code=5, Index=1, Line number=1389, aborting...
1/1 Test #1: test_neg_app ..............***Failed  Error regular expression found in output. Regex=[App error: Error code=5]  1.32 sec

【问题讨论】:

    标签: cmake ctest


    【解决方案1】:

    FAIL_REGULAR_EXPRESSION

    匹配消息前后的任何内容,以便正则表达式匹配它。

    ... FAIL_REGULAR_EXPRESSION ".*${neg_message}.*")
    

    【讨论】:

    • 不幸的是,它不起作用:测试#1:test_neg_app ........***失败 0.99 秒
    【解决方案2】:

    这个话题可以关闭了。我必须使用 PASS_REGULAR_EXPRESSION 而不是 FAIL_REGULAR_EXPRESSION 来检查预期的子字符串。无需额外命令即可正常工作。

    【讨论】:

    • 我想你想设置WILL_FAIL 和 FAIL_REGULAR_EXPRESSION
    • 除非您的应用程序即使失败也返回 0...
    • 我必须使用 PASS_REGULAR_EXPRESSION 并使用代码检查预期的错误消息。
    猜你喜欢
    • 2015-04-16
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2016-09-03
    • 2019-10-01
    • 2011-11-09
    • 2013-05-18
    相关资源
    最近更新 更多