问题标签 [ctest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - CMake/CTest 与 wine/qemu 的集成
是)我有的:
我为不同平台开发原生统一插件,包括
- iOS
- 安卓
- 视窗
- 操作系统
我cmake
用作构建系统和ctest
单元测试
我的构建环境 - osx
,所以在 osx 上运行单元测试不是问题。
我也知道,为了测试 Android 和 Windows,我可以qemu
相应地使用wine
。
问题:
我只是想知道
cmake/ctest
提供任何变量来指定一些模拟器,比如wine
orqemu
?或者我应该为此编写一些自定义脚本?如何在 iOS(设备或模拟器)上运行本机单元测试?有可能
qemu
吗?
cmake - 仅在 ctest 中运行时测试可执行文件失败
当我使用 ctest 接口到 cmake( add_test(...)
) 并运行 make targetmake test
时,我的几个测试失败了。当我直接从二进制构建文件夹的命令行运行每个测试时,它们都可以工作。
我可以用什么来调试这个?
cmake - CMakeLists.txt:如果 ctest 失败,如何打印消息?
ctest
如果测试失败,有没有办法可以设置 CMakeLists.txt 打印消息?例如:
cmake - 对于 CMakeLists.txt 中的特定项目,将 ctest 命令永久替换为“ctest --output-on-failure”
我发现通用ctest
命令没有提供太多关于测试的信息,所以我想添加ctest --output-on-failure
但不让用户担心标志。我希望他们只是cmake
,make
项目并运行 ctest,它应该使用标志--output-on-failure
运行 ctest 。是否可以在 CMakeLists.txt 中做到这一点?
编辑:
的输出env CTEST_OUTPUT_ON_FAILURE=1 make test
的输出set_property(TEST TestName PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1")
中的标志set_property
不起作用。
cmake - “ctest”与“make check”:糟糕的构建时间与错误的选项传递
要在 CMake 下注册测试,我们需要
或者
然后对于每个单独的测试(名称fooTest
,可执行文件foo
)
然后可以使用命令运行测试ctest
。
此外,我们可以使用命令运行测试make check
,只要我们添加一次
EXCLUDE_FROM_ALL
对于每个测试,我们通过关键字和命令扩展上述内容add_dependencies
:
make check
理想情况下,这将使ctest
. 至少有两个原因并非如此:
(1)make check
是有缺陷的,因为它没有将选项传递给ctest
[2]。特别是,ctest -j4
将并行运行 4 个测试,而make -j4 check
将在 target 上的一个线程中工作,而check
其他三个线程将保持空闲状态。
(2)ctest
是有缺陷的[3,4],因为所有测试都是在all
目标下构建的,即与主应用程序一起构建。在某些情况下,这可能是期望的行为,但在其他情况下,应该可以将构建推迟到要运行测试为止。
这是否正确地概括了当前的事态?
有什么办法(吃蛋糕并拥有它)吗?
[1] https://cmake.org/Wiki/CMakeEmulateMakeCheck [2] http://comments.gmane.org/gmane.comp.programming.tools.cmake.user/47300 [3] CMake & CTest : make test 不'不构建测试 [4] http://public.kitware.com/Bug/view.php?id=8774
cmake - 让 CMake 设置 CTtest 以在单个测试的输出周围打印页眉和页脚
有没有办法,理想情况下CMakeLists.txt
,设置ctest
为
- 在运行单个测试之前打印一个标题,
- 运行单个测试后打印页脚,
- 使页脚取决于测试是否全部成功?
页脚应出现在默认输出下方
这具体化并概括了一个自 2 年多以来一直未解决的问题(CMakeLists.txt: How to print a message if ctest failed?)。因此,我担心没有简单的解决方案。
因此,另一个问题是:期望的行为可以实现CDash
吗?
c++ - 使用 cmake 链接运行时库以进行测试
是否有任何简单的方法可以在运行时将本地构建的库链接到使用 CMAKE 的测试?
例如:
运行测试会在运行时抱怨缺少库:
我可以:
LD_PRELOAD
运行 ctest 时设置- 编写一个执行此操作的包装脚本,然后调用可执行文件(我目前拥有的)
不过,我更愿意在 cmake 中做所有事情,因为我认为最好将所有这些配置保存在一个地方以避免将来出现错误。
cmake - 根据 file() 或 make_directory() 调用进行测试
我有一个测试(add_test(NAME MyTest COMMAND MyExecutable
),我只想运行一些“准备”任务。当我有一个依赖于另一个测试的测试时,我会使用SET_TESTS_PROPERTIES(TestA PROPERTIES DEPENDS AnotherTest)
,但是有没有办法可以做类似的事情SET_TESTS_PROPERTIES(TestA PROPERTIES DEPENDS file(REMOVE /path/to/file))
?
visual-c++ - 设置 CTest (cmake) 环境变量配置特定
在 cmake 脚本中,我有一套依赖于一组插件的测试(其输出因 Windows Debug/Release/RelWithDebInfo 等中的配置而异)。
我想要和 env 变量有正确的路径,比如
这显然只适用于调试版本。
我尝试过
但似乎没有一个适用于所有配置,因为 env 是在 cmake 时解析的。在运行给定配置的正确套件测试之前,有没有办法对这些表达式进行惰性评估?
unit-testing - CTest --build-and-test 和 --test-command 选项
我使用 Ctest 运行一堆我使用add_test()
. 目前,这些测试不接受任何参数。但是,我想--gtest_output=xml
在运行ctest
.
我听说可以使用该--test-command
选项,但是,我看到我们需要--test-command
与--build-and-test
. 有这种用法的例子吗?