问题标签 [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.
cmake - 使用 CMake,如何从 CTest 获得详细输出?
我正在使用 CMake 来构建我的项目。我添加了一个使用 Boost 单元测试框架的单元测试二进制文件。这个二进制文件包含所有的单元测试。我添加了由 CTest 运行的二进制文件:
但是 Visual Studio 中的构建输出只显示了运行 CTest 的结果:
这不是很有帮助,因为我看不到哪个测试失败了。如果我从命令行手动运行 ctest,--verbose
我会从 Boost 单元测试中获得输出,该输出会告诉您实际失败的原因:
那么,我需要在 CMakeLists.txt 中进行哪些更改才能让 CTest--verbose
始终运行?有没有更好的方法来使用 CMake/CTest 的 Boost 单元测试?
junit - 如何在 Hudson / Jenkins 中获得 CTest 结果
我正在使用 CTest(CMake 的一部分)进行自动化测试。
如何在 Jenkins 仪表板中获得 CTest 结果?或者,换一种说法,我如何让 CTest 以类似 JUnit 的 XML 输出?
unit-testing - 如何在运行 ctest 时找到错误所在
运行 make test 后得到以下输出,但我如何知道错误是什么?
c++ - cmake/ctest:是否可以将构建目标的创建用作测试?
我有一个程序可以读取文件格式的描述(好奇的 ISO 10303-11)并从中生成 c++。生成的代码被编译成一个库,该库与各种可执行文件链接以读取/写入该文件格式。
我已经设置了 CMake 来构建生成器程序并为配置时指定的任何文件格式生成库。
现在,我想添加测试。这些测试与构建过程中已经完成的步骤相同 - 我必须在 CTest 脚本中重做这些步骤,还是有办法告诉 ctest 构建目标并捕获任何错误消息?
unit-testing - 使用 CTest 运行嵌套测试
我有一个小而重要的项目,由于架构原因,它被构建为三个独立的项目,它们是相互依赖的,所以除非我特别专注,或者发现一个漏洞来提高测试覆盖率,否则它对我从项目根目录工作。
布局是这样的:
关于架构的一句话,libmyproject
是我的应用程序的真正核心,它是这样构建的,因为 CLI 是一种将代码发送给最终用户的可怕方式,作为一个库,它也用于 C# 和 Objective-C 应用程序。(以及所有按预期工作)
是一些特定于libmyotherproject
平台的支持代码,不直接连接到libmyproject
,它有一些单元测试。
在vlc-plugin
这里并不重要,只是表明并非所有内容/src/*/
都有单元测试。
我的工作流程通常是破解 CLI 应用程序,直到出现有用的东西,然后将其重构到库中,并确保它是可移植的。
当我工作时/src/*/build/
,通常是跑步cmake ../ && make && ctest --output-on-failure
,一切正常。
当我在 中工作/build
并运行cmake
时,各个组件都是add_subdirectories()
从 CMake 正确构建(使用)的,但CTest
不会递归地找到测试。
的文档对CTest
您应该做的事情有点帮助:
ADD_TEST()
自从电话出现以来,我就已经预料/src/libmyotherproject/tests/CMakeLists.txt
到它们会运行吗?(它们至少是在我运行时编译cmake
的/build/
)
我希望我能够提供足够的信息,谢谢。
c - 如何使用带有 CTest 的检查库在 C 中进行单元测试
我有一个项目,我想在其中使用检查库进行单元测试。
我当前的项目正在使用 CMake,并具有以下结构:
在core-test
我有core
模块的单元测试。在scrypt-test
我将对scrypt
模块等进行测试。
与 CTest 一起使用check
有意义吗?
如果是:如何将使用的单元测试连接check
到 CMake/CTest 项目?我是否需要对 CTest 进行额外配置才能解释check
启用的可执行文件的结果?
visual-studio - 如何在生成的 Visual Studio 文件中更改 CTest 运行的目录
在使用 CMake 生成的 RUN_TESTS 项目时,我目前无法更改目录 CTest。当前 CMAKE_RUNTIME_OUTPUT_DIRECTORY 设置为自定义路径。因此,当 CTest 尝试运行时,它是从不包含二进制文件的目录中运行的。
作为临时解决方法,我使用 ${RUNTIME_OUTPUT_DIRECTORY}\test 调用 ADD_TEST 但我不确定这是否是正确的解决方案。有没有更好的方法更改 CTest 使用的默认目录?
c++ - Ctest/Cdash 工作流程:部署夜间构建
我使用/维护了一些 CMake 项目,所以我开始检查 CTest/CDash,但有一些我无法弄清楚:
它仅用于显示构建/测试结果吗?(又名美化原木)
或者:在服务器上部署夜间构建二进制文件是否可以包含在该工作流程中?
尽管我认为 CTest 是测试 CMake 项目和显示测试结果的理想工具,但我还想在 Web 服务器上自动部署夜间构建,我想知道它是否是正确的工具。 .
windows - 如何在 cmake 中使用 add_test 传递 ${CTEST_CONFIGURATION_TYPE}
我似乎无法弄清楚如何在 cmake 中使用 add_test 传递 ${CTEST_CONFIGURATION_TYPE} 而无需 CMake 添加额外的转义字符。
我目前正在使用 cmake 生成 VS 项目文件并设置 RUNTIME_OUTPUT_DIRECTORY 并且需要使用此目录 + 配置作为一些测试的工作目录,因为它们依赖于其他构建的可执行文件。
我试过使用
这正确地找到了我的测试可执行文件,但是生成的 CTestTestfile.cmake 文件包含
无论如何我可以让它工作还是我每次都必须通过命令行将正确的目录传递给测试?
continuous-integration - CMake 和与多个依赖项目的持续集成
我目前为 CI 配置 CMake/CTest。一切正常,除了以下几点:我们有几个相互依赖的项目。但是,在我们的顶层构建脚本中,它们只是按照正确的顺序构建的。在 CI 期间,对于每个项目,我只需在相应项目的构建目录中执行“make Continuous”。但是,当一个项目中的头文件被更新时,只有在“make Continuous”之后才会构建这个项目。另一个使用相同包含文件的依赖项目在“make Continuous”期间不会重建,因为在此项目中不会发生更新。
所以我的问题是:有什么方法可以强制在“make Continuous”期间完成构建步骤,而与 svn 更新的结果无关?
任何其他想法如何解决这个问题?