首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CTest运行嵌套测试

使用CTest运行嵌套测试
EN

Stack Overflow用户
提问于 2012-01-04 01:28:16
回答 1查看 845关注 0票数 4

我有一个小的,但不是微不足道的项目,由于架构原因,它被构建为三个独立的项目,它们是相互依赖的,所以除非我特别专注,或者在发现漏洞后提高测试覆盖率,否则对我来说,从项目根开始工作是有意义的。

布局是这样的:

代码语言:javascript
复制
/CMakeLists.txt
/build/
/src/command-line-application/
/src/command-line-application/CMakeLists.txt
/src/command-line-application/build/
/src/command-line-application/src/
/src/command-line-application/tests/
/src/command-line-application/include/
/src/vlc-plugin/
/src/vlc-plugin/src/
/src/libmyproject/
/src/libmyproject/CMakeLists.txt
/src/libmyproject/build/
/src/libmyproject/src/
/src/libmyproject/tests/
/src/libmyproject/include/
/src/libmyotherproject/
/src/libmyotherproject/CMakeLists.txt
/src/libmyotherproject/build/
/src/libmyotherproject/src/
/src/libmyotherproject/tests/
/src/libmyotherproject/include/

关于体系结构,libmyproject是我的应用程序的核心,它是这样构建的,因为它是一种糟糕的将代码传送给最终用户的方式,作为一个库,它也可以在C#和Objective-C应用程序中使用。(并且所有的工作都如预期的那样)

libmyotherproject是一些特定于平台的支持代码,并不直接连接到libmyproject,它有一些单元测试。

在这里,vlc-plugin并不重要,只是为了表明并非/src/*/中的所有内容都有单元测试。

我的工作流程通常是修改CLI应用程序,直到突然出现一些有用的东西,然后将其重构到库中,并确保它是可移植的。

当我在通常运行cmake ../ && make && ctest --output-on-failure/src/*/build/中工作时,一切都正常。

当我在/build中工作并运行cmake时,可以从CMake正确地构建各个组件(使用add_subdirectories()),但是CTest不会递归地找到测试。

CTest的文档对您应该做的事情没有什么帮助:

代码语言:javascript
复制
USAGE
         ctest [options]

DESCRIPTION
       The  "ctest"  executable is the CMake test driver program.  CMake-generated build trees created for
       projects that use the ENABLE_TESTING and ADD_TEST commands have testing support.  This program will
       run the tests and report results.

因为ADD_TEST()调用是在/src/libmyotherproject/tests/CMakeLists.txt中进行的,所以我认为它们会运行吗?(当我从/build/运行cmake时,它们至少会被编译)

我希望我能提供足够的信息,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-11-08 23:12:46

代码语言:javascript
复制
include(CTest)

在进行任何add_subdirectory调用之前,在您的顶级CMakeLists.txt文件中。

这将为您调用enable_testing,如果您想要在项目上运行ctest仪表板脚本以将结果发送到CDash服务器,还可以对其进行设置。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8716199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档