问题标签 [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.
unit-testing - 使用 Ctest 创建测试组
我正在尝试将单个 ctest 测试组合在一起,但到目前为止还没有成功。例如,如果我有以下测试: add_test(test1) add_test(test2) add_test(test3)
我想将它们分组到一个测试套件中,该套件将作为一个测试上传到仪表板。
interop - ctest create_test_sourcelist with fortran 和 char**
我有一些 fortran 测试,我想使用 create_test_sourcelist 在 CTest 中运行。这是一个在 C 或 C++ 中创建驱动程序的实用程序,它调用 fortran 测试例程并期望签名:
有人可以解释连接此签名的正确方法,可能是 iso_c_bindings,据我了解,这些都变得非常标准。我相信是 char** 让我受伤了——整数参数有很多例子。
谢谢!
cmake - CMake/CTest & gcovr:文件扩展名?
在使用带有标志 --coverage 的 CMake 编译并运行我的 boost 单元测试程序后,将创建扩展名为 .cpp.gcda 和 .cpp.gcno 的文件。如果我然后运行 gcovr 它声称它找不到 .gcno 文件(错误消息“.gcno:无法打开图形文件”)。我可能会移动所有输出文件,但这真的很尴尬/愚蠢。
其他人的相关问题可以通过使用 CTest 来解决,但是当我使用 Jenkins 时,我想坚持使用 gcovr 并使用 cobertura xml 输出。
附言。也许我应该简单地问:我应该如何将 CMake 与 gcovr 结合起来?
cmake - 从 CTest 脚本访问 CMake 缓存变量
我的项目链接到带有 valgrind 抑制文件以及 CMake 脚本的第三方库。该脚本将抑制文件的位置存储在 CMake 缓存变量中。
我编写了一个 CTest 脚本,它在我的项目上运行连续测试并提交到仪表板。我想在内存检查阶段使用抑制文件。不幸的是,CTest 脚本似乎对 CMake 缓存一无所知。如何从我的 CTest 脚本访问 CMake 缓存变量?
unit-testing - 如何使用 ctest 重新运行失败的测试?
我正在使用 CTest 来启动我的项目的测试。我只想启动上次执行失败的测试。
有没有一种简单的方法可以用 CTest 做到这一点?
cmake - 将 gtest 与 cmake/ctest 一起使用时未找到测试
我有一个具有以下结构的项目:
文件 test_vector3.cpp 是一个 gtest 单元测试文件,它提供了两个简单的测试。顶层 CMakeLists.txt 只是设置包含并添加 src 和 test 子目录:
src/CMakeLists.txt 文件将vector3.cpp 编译成静态库:
test/CMakeLists.txt 文件基于 /usr/share/cmake-2.8/Modules/FindGTest.cmake 中提供的示例:
然后我运行以下命令:
我将 liblinalg.a 库正确编译到 build/src 中,并将 test_vector3 可执行文件正确编译到 build/test 中。我可以运行 test_vector3 可执行文件,我从 googletest 得到输出,说所有测试都通过了,但是如果我运行,make test
我没有任何输出,如果我运行,ctest ..
我会收到一条消息:
有什么我想念的吗?还是我只是误解了 ctest 如何与 gtest 一起工作?
c++ - 来自不同文件夹的 CMake 测试源
我开始使用 CMake 来使用 Qt 创建一个项目并使用 Google Test 对其进行测试。目前,我成功地找到了编译和链接所有必需库的方法。但是,我找不到将源链接到具有以下项目结构的测试文件的方法:
根 CMakeLists.txt 包含 gtest、src 和 test 文件夹的 add_subdirectory。我已成功编译并运行“Hello world”应用程序和简单的 EXPECT_TRUE(true) 测试,以检查每个部分是否正确编译。不幸的是,我找不到将源文件包含到测试中的方法。是否可以使用以下项目结构?
PS我知道可以将我的源代码编译为库并将其链接到测试,但我不喜欢这种方法,因为它更适合集成测试,而不是单元测试......
编辑:向树中添加了类名
visual-studio - 测试,VS2010。如何摆脱 Nightly、NightlyMemCheck 等?
我在 Visual Studio 2010 中使用 CMake 和 CTest。
ENABLE_TESTING()
几秒钟后,ADD_TEST()
我的解决方案包含名称为“连续”、“实验”等的项目。
我不需要全部。而且,我要把所有的代码都传给一个对CMake不是很熟悉的人,怕这个丰富会迷惑和误导他。
所以,我想只留下 RUN_TESTS 项目并摆脱所有其他测试项目。
我怎样才能做到这一点?
cmake - 使用 cmake 构建我的项目后如何运行 ctest
我希望每次成功构建我的项目时启动我的测试。如果某些测试被破坏,我希望我的构建也被破坏。默认情况下,我需要通过运行ctest
命令手动运行测试。CTest 实际上可以构建项目,但我使用调用make
来构建源的 IDE。并且make
不运行测试。
我将此命令添加到我的根 CMakeLists.txt 文件中,但它不起作用。
CMake 不返回任何错误,一切正常,但我的自定义命令没有调用。每次在 CMake 中成功构建后,如何运行某些东西?
更新:
我的最终解决方案是创建这个宏:
它调用add_test
并记住列表中的测试目标。此宏添加的项目中的每个测试。在根 CMakeLists.txt 我有这个代码:
它创建依赖于项目中所有单元测试的自定义目标。自定义命令在all_tests
构建目标后运行。
c++ - 将 bash 命令添加到 CMake 测试
我最近发现了 CMake 测试的可能性。我使用它编写了几个测试客户端,它们工作正常,但要执行测试,我需要:
cmake .. -> make -> 然后在后台或其他终端运行我的程序 -> make test(运行所有测试客户端/测试场景)
假设我想要命令:make test不仅要运行测试,还要在后台运行可执行文件(正在测试)并在测试完成后将其杀死。如何通过 CMakeLists 传递 bash 命令?我还没有找到一种直接的方法来实现我想要的