testing - 使用 CMake + make 只运行一个测试
问题描述
如果我的项目有一堆测试,我可以运行它们 - 在cmake
ing 和make
ing 构建之后,构建 - 使用make test
.
但是如果我只想运行我的一项测试呢?也就是说,我add_test()
在测试中有 a 的项目之一CMakeFile.txt
?
解决方案
tl;博士- 这样做:
cd $YOUR_BUILD_DIRECTORY
ctest -R name_of_your_test
解释
以下是您可能感到困惑的方式:
您试图使用 来执行此操作
make
,因为make test
为您运行所有测试。这不适用于单个测试(尽管有一种解决方法 - 请参阅@danger89's answer)。ctest
是跨平台的方式。你开始使用
ctest
, 例如在你的主项目目录中,你可能得到了类似的东西:********************************* No test configuration file found! ********************************* Usage ctest [options]
这没有帮助。
...所以你想“好吧,也许
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 为我指明了正确的方向
推荐阅读
- python - 从 dict 和 list 生成数据框的最简单方法
- string - 如何将飞镖中的字符串内的两个变量相乘?
- ms-access - DLOOKUP 用于使用 2 个组合框选择填充文本框
- python - 从数据框中搜索单元格中的每个字符串并从另一个数据框列中查找(匹配)相同的字符串将索引返回到新准备的数据框
- c# - 禁用面板上的鼠标滚轮滚动。C#
- javascript - 谷歌控制台中jquery双击的问题
- html - 引导导航栏汉堡菜单单击后无响应
- github - 在 ns-3 上构建 Quic 协议
- azure-devops - 将附件上传到 Azure devops
- usb - USB端口和(我假设)IOMMU控制器有问题