gpt4 book ai didi

testing - 使用 CMake + make 只运行一个测试

转载 作者:行者123 更新时间:2023-11-28 19:56:54 25 4
gpt4 key购买 nike

如果我的项目有一堆测试,我可以运行它们 - 在 cmakeing 和 makeing 构建之后,构建 - 使用 make test

但是如果我只想运行其中一个测试怎么办?也就是说,我在测试 CMakeFile.txt 中有一个 add_test() 的项目之一?

最佳答案

tl;dr - 这样做:

cd $YOUR_BUILD_DIRECTORY
ctest -R name_of_your_test

解释

以下是您可能会感到困惑的原因:

  1. 您尝试使用 make 执行此操作,因为 make test 会为您运行所有测试。这不适用于单个测试(尽管有一个解决方法 - 请参阅@danger89 的 answer)。 ctest是实现它的跨平台方式。

  2. 您开始使用 ctest,例如在你的主项目目录中,你可能会得到类似这样的东西:

     *********************************
    No test configuration file found!
    *********************************
    Usage

    ctest [options]

    这没有帮助。

  3. ... 所以你认为“好吧,也许 ctest 有一个 -C 开关,就像 CMake 和 GNU Make” - 事实上,它有一个-C 开关!但这并没有达到您的预期:

     [joeuser:/home/joeuser/src/myproj]$ ctest -C build
    Test project /home/joeuser/src/myproj
    No tests were found!!!

你实际需要做的:

  cd $YOUR_BUILD_DIRECTORY
ctest -R name_of_your_test

(注意 -R 匹配一个正则表达式。)这应该有效。请注意,您可以列出要运行的测试,而不是通过将 -N 传递给 ctest 来实际运行它们。


* 感谢@RTsyvarev 为我指明了正确的方向
* 如果您的测试名称也是另一个测试名称的前缀,请使用 ctest -R '^name_of_your_test$' - 参数实际上是一个正则表达式。

关于testing - 使用 CMake + make 只运行一个测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54160415/

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