使用 CTest/CMake 时在 VS2019 测试资源管理器中指定命名空间/类

Dew*_*wfy 8 cmake visual-studio-2019

我正在使用 CMake + VS2019。在我的测试定义中,我有类似的东西:

add_test(NAME "common/base64" COMMAND my_unit_test "common/base64")
Run Code Online (Sandbox Code Playgroud)

VS2019 显示如下:

在此处输入图片说明

在项目中我有数百个测试,搜索不清楚的随机生成的名称,扩展每个项目非常不方便。所以我的问题:

  • 如何指定可识别的测试名称(而不是 EBF.Tests.52488745200006951440)?
  • 如何指定命名空间/类?

我也可以看到 Vs2019 测试资源管理器可以按“特征”分组 - 我可以在这个功能上指定它吗?

Jen*_*och 1

看来“EBF.Tests”前缀就是“项目名称”。

您可以禁用测试前缀或通过更改测试自动发现方法中的 TEST_PREFIX 设置或测试命名本身来设置新前缀。

对于 CTest,通过更改测试命名:

# use [namespace].[class].[testname] naming 
add_test("lib.namespace.Tests.SomeTest" test_exe)
Run Code Online (Sandbox Code Playgroud)

对于 Catch2,通过更改自动发现方法中的 TEST_PREFIX 来更改测试名称前缀:

catch_discover_tests(
    TagTestsTarget
    TEST_SPEC "[tag]"                   # select tests by tag name
    TEST_PREFIX "lib.namespace.Tests."  # last dot required !
)
Run Code Online (Sandbox Code Playgroud)