gpt4 book ai didi

unit-testing - CMake 和 CTest 的默认 "test"命令会跳过特别命名的测试

转载 作者:行者123 更新时间:2023-12-04 04:07:00 24 4
gpt4 key购买 nike

我正在使用 CTest 和 CMake 来运行一些测试。我使用 enable_testing() 命令,它为我提供了 make test 的默认命令。我的子目录中的所有测试都被考虑在内(通过执行 add_test 命令)并且 make test 工作得很好,除了一个问题。

有一个特定的测试,我将其命名为 skip_test,我不想在执行 make test 时运行它。我想添加一个自定义目标,以便我可以运行 make skip_test,它将运行该测试。

我可以通过执行 add_custom_target(skip_test ...) 并为 CTest 提供 -R 标志并告诉它在中查找包含“skip_test”的文件来做到这一点他们的名字。这似乎也有效。我现在的问题是:如何让 make test 命令忽略 skip_test

如果我尝试注释掉 enable_testing 并添加我自己的 add_custom_target(test ....),我会收到“未找到测试!!!”现在为 make testmake skip_test。我还尝试制作自定义 CTest 文件并添加 set(CTEST_CUSTOM_TESTS_IGNORE skip_test)。这行得通,所以现在 make test 忽略了“skip_test”,但现在运行 make skip_test 响应“没有找到测试!!!”。

如有任何建议,我们将不胜感激!

最佳答案

我实际上使用了不同的解决方案。这是我所做的。对于我想排除的测试,我在添加它们时使用了以下命令:

"add_test( ..... CONFIGURATIONS ignore_flag)"其中 ignore_flag 是您想要的任何短语。然后,在我的 CMakeLists.txt 中,当我定义自定义目标时add_custom_target( ignore_tests ...)我给它 ctest .... -C ignore_flag

现在,make test 将跳过这些测试! make ignore_Tests 将运行被忽略的测试+未被忽略的测试,我可以接受。

关于unit-testing - CMake 和 CTest 的默认 "test"命令会跳过特别命名的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31252228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com