【发布时间】:2019-10-18 14:36:22
【问题描述】:
免得假设我有一些由 N 个域 (D1, D2, ... , DN) 组成的项目。每个域都有两种测试:更不用说 UT 和 MT。它们的定义如下:
add_test(
NAME Di_UT
COMMAND <blah>
)
add_test(
NAME Di_MT
COMMAND <blah>
)
我希望能够按标签过滤它们。所以我添加了标签:
set_tests_properties(Di_UT PROPERTIES LABELS "UT;Di")
set_tests_properties(Di_MT PROPERTIES LABELS "MT;Di")
然后我执行ctest:
ctest -L Di
将为域 Di 执行所有测试,当然相反:
ctest -L UT
将执行所有带有 UT 标签的测试。
但是如何按两个标签进行过滤?仅对域 Di 执行 UT?
据我观察,传递多个-L 会导致它们被覆盖。 (最后一个有效果)。还有其他想法吗?我的 cmake 版本是
ctest version 3.13.4
【问题讨论】:
-
这是在 gitlab.kitware.com/cmake/cmake/-/issues/21087 中作为功能请求向上游提交的,并且正在 MR gitlab.kitware.com/cmake/cmake/-/merge_requests/5329 中进行处理,因此希望使用 CMake 3.21,以下答案将过时。