首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不需要在cmake中调用`add_test`?

在cmake中,add_test是用来添加测试用例的命令。它的作用是将测试用例与项目代码进行关联,以便在构建过程中自动执行这些测试用例。然而,并不是所有的项目都需要进行测试,因此并不是每个项目都需要在cmake中调用add_test

以下是一些可能的原因:

  1. 项目不需要进行单元测试:有些项目可能是非常简单的,或者是一些脚本或工具,不需要进行单元测试。在这种情况下,不需要在cmake中调用add_test
  2. 测试用例已经集成到其他构建工具中:有些项目可能使用其他构建工具来进行测试,例如使用JUnit进行Java项目的测试。在这种情况下,测试用例已经在其他构建工具中定义和执行,不需要在cmake中调用add_test
  3. 使用其他测试框架:cmake提供了一些基本的测试功能,但是如果项目使用了其他测试框架,例如Google Test或Catch2,那么测试用例的定义和执行将由这些框架负责,而不是由cmake调用add_test

总之,是否需要在cmake中调用add_test取决于项目的具体需求和测试策略。如果项目需要进行测试,并且使用cmake作为构建工具,那么就需要在cmake中调用add_test来添加测试用例。否则,可以不需要在cmake中调用该命令。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么不需要在 Docker 容器运行 SSHD

当开始使用Docker时,人们经常问:“该如何进入容器?”,其他人会说“在你的容器里运行一个SSH服务器”。但是,从这篇博文中你将会了解到你根本不需要运行SSHd守护进程来进入你的容器。...那样的话,你肯定不会被允许把一个SSH服务器扔进你的容器。 但我该如何做… 备份的数据? 你的数据应该存在于 volume....“但是要在服务存活期间,改变的配置;例如增加一个新的虚拟站点!”这种情况下,你需要使用……等待……volume!...你可以在这个容器中使用任何你喜欢的东西:SSH + 你最喜欢的编辑器,或一个接受API调用的web服务,或一个从外部源抓取信息的定时任务;诸如此类。...总结 在一个容器运行SSH服务器,这真的是一个错误(大写字母W)吗?老实说,没那么严重。当你不去访问Docker主机的时候,这样做甚至是极其方便的,但是这仍然需要在容器取得一个shell。

81330

为什么wait和notify方法要在同步块调用

,那么这是为什么呢?...为什么wait和notify方法要在同步块调用? 我们先来发出一个灵魂拷问:什么时候才需要wait? 什么时候又需要notify?...take,发现buffer.isEmpty 在消费者调用wait之前,由于cpu的调度,消费者线程被挂起,生产者调用add,然后notify 然后消费者调用wait (注意,由于错误的条件判断,导致wait...所以:wait和notify方法要在同步块调用的根本原因是,这两个方法存在竞态条件。如果不加锁的话,那么wait被调用的时候可能wait的条件已经不满足了(如上述)。...由于错误的条件下进行了wait,那么就有可能永远不会被notify到,所以我们需要强制wait/notify在synchronized

91820

CMake 秘籍(八)

如何组织文件 我们将收集生成这些文件的函数在src/autogenerate.cmake,包含此模块,并在定义可执行目标之前在src/CMakeLists.txt调用这些函数: # generate...这可能无法以可移植的方式适应单个add_test命令,因为add_test只能执行一个命令。一个解决方案是将测试步骤定义在一个 Python 脚本,并用一些参数执行该 Python 脚本。...我们将在这里介绍的另一种替代方案也是跨平台的,即将测试步骤定义在一个单独的 CMake 脚本,并从add_test执行该脚本。...优先使用 CMake 的等效命令。如果没有可用的 CMake 等效命令,考虑调用 Python 脚本。...模块包含不应是函数调用:将 CMake 代码模块化是一个好的策略,但包含模块理想情况下不应执行 CMake 代码。相反,应将 CMake 代码封装到函数和宏,并在包含模块后显式调用这些函数和宏。

11610

python模块之configparse

section set( section, option, value) 对section的option进行设置 需要调用write将内容写入配置文件。...') conf.set('add_test','name','xiaoke') conf.set('add_test','age','25') #添加完毕,必须调用write方法写入 conf.write...')) #修改add_test section的age键 conf.set('add_test','age','27') #修改完毕,必须调用write方法写入 conf.write(open('config.ini...config.ini','w')) 注意要点 注意要点: 1.ConfigParser 在get 时会自动过滤掉‘#’或‘;’注释的行(内容); 一般情况下我们手工会把配置的暂时不需要的用‘#’注释...那么就需要一个策略或规则,配置需不需要手工编辑 ?还是建立复杂的对原生文本的处理的东西,建议是管住手,避免将一些重要的配置爆露给用户编辑,切记行内注释和Section内注释。

45000

CMake 秘籍(四)

宏期望两个参数,_name和_cost,我们可以在宏内部使用这些参数来调用add_test和set_tests_properties。...CMake 函数没有返回值。 还有更多 在宏嵌套函数调用和在函数嵌套宏调用是可能的,但我们需要仔细考虑变量的作用域。...: include(cmake/colors.cmake) 还有更多 推荐的做法是在模块定义宏或函数,然后调用宏或函数。...这种方法对许多项目来说是典型的,并且它可以扩展到大型项目,而不需要在目录之间携带全局变量的源文件列表。...这是推荐的实践,允许我们使用相同的源代码配置不同的构建(顺序或并行,Debug或Release),而不需要复制源代码,也不需要在源代码树散布生成的和对象文件。

17420

面向 C++ 的现代 CMake 教程(一)

现在你知道最终结果长什么样了,相信你会有很多问题:这个过程的前提条件是什么?这些命令意味着什么?为什么我们需要两个?如何编写自己的项目文件?不要担心——这些问题将在接下来的章节得到解答。...然而,首先,你需要在你的系统上获取 CMake 的二进制副本。那么,如果你有自己的构建工具,为什么还要使用其他的呢?这种场景是 CMake 贡献者用来生成新版本的。...但如果我们真的需要在调用(父)作用域中更改变量,该怎么办呢?...大多数时候,我们实际上并不需要在项目中使用列表。然而,如果你发现自己处于这种方便的概念的罕见情况,你会在附录部分找到list()命令的更深入的参考。...最后一个问题依然存在——为什么要在宏上而不是推荐函数上使用?在这种情况下,无限制访问全局变量是好的,由于我们没有向main()传递任何参数,所以我们不需要担心常见的警告。

58201

CMake 秘籍(六)

DEBUG_POSTFIX "_d": 这告诉 CMake,如果我们以Debug配置构建项目,则要在生成的共享库添加_d后缀。...这意味着当调用可执行文件时,将加载共享库。因此,为了使加载器成功完成其工作,需要在某个地方编码有关库位置的信息。...为什么我们选择这种方法而不是在第 3 个菜谱展示的使用OBJECT库的方法,即“构建和链接静态和共享库”,在第一章“从简单的可执行文件到库”?OBJECT库负责编译库的第一步:从源代码到对象文件。...我们将对该工具的调用封装在一个 Python 脚本,该脚本进一步封装在一个 CMake 脚本。...为此,我们需要在根目录添加三个额外的文件:README.rst,MANIFEST.in和setup.py。

17000

Explosion 开发笔记 (三)

我们在团队内推崇大家使用 Issues 来交流、跟踪进展,使用 Project 来管理整个项目,大概效果是这样: Issues Project 提交 Issues 会自动关联到 Project,MR 需要关联对应的...CI CI 方面我们目前使用的是 GitHub Actions,不得不说这玩意可塑性要比其他的 CI/CD 工具强很多,写起来也是比较方便的,目前 CI 就配置了一个 cmake 构建,覆盖平台有: Ubuntu...构建系统优化 抽空对所有的 CMake 进行了一次重构,主要做的事情是把常用的一些基本 CMake 指令做了一次封装,主要涉及: add_executable add_library add_test...代码质量控制 经过一番考量,暂时选用了 Codacy 作为我们的静态检查工具,因为是纯在线的工具,完全不需要集成,只需要按步骤启用 GitHub App 即可启用扫描,可以在 Codacy Dashboard...c: DataType.Int } }); }; 然后我们需要经过一轮预编译,我们的预编译器会执行所有的 .comp.js 文件,然后找到 entry 方法进行调用

50610

CMake基础

CMake基础 一、什么是编译器 编译器,是一个根据源代码生成机器码的程序 g++ main.cpp -o a.out 该命令会调用编译器程序g++,让他读取main.cpp的字符串(称为源码),并根据...比如 OpenMP,只需要在 CMakeLists.txt 中指明 target_link_libraries(a.out OpenMP::OpenMP_CXX) 即可 五、CMake的使用 1.CMake...,并开始构建 a.out: make -C build 以下命令和上一个等价,但更跨平台: cmake --build build 执行生成的 a.out: build/a.out 2.为什么需要库...有时候我们会有多个可执行文件,他们之间用到的某些功能是相同的,我们想把这些共用的功能做成一个库,方便大家一起共享 库的函数可以被可执行文件调用,也可以被其他库文件调用 库文件又分为静态库文件和动态库文件...fmt) 为什么是 fmt::fmt 而不是简单的 fmt?

1.9K20
领券