IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> CMake 教程(Step 4): 安装和测试 -> 正文阅读

[开发工具]CMake 教程(Step 4): 安装和测试

注:

现在我们将开始向项目中添加安装规则和测试支持.

注: 接触过开源项目的同学,可能知道, 很多开源项目源码都是使用make工具进行编译和安装的, 使用make进行编译, make install进行安装. CMake也是类似的.

设置安装规则

安装规则相当简单:对于MathFunctions,我们希望安装库文件和头文件,而对于应用程序,我们希望安装可执行文件和可配置的头文件.

  • MathFunctions/CMakeLists.txt的末尾添加:
# 将`libMathFunctions.a`放到`lib`目录
install(TARGETS MathFunctions DESTINATION lib)
# 将`MathFunctions.h`放到`include`目录
install(FILES MathFunctions.h DESTINATION include)
  • 在顶层CMakeLists.txt的末尾添加:
# 将应用程序放到`bin`目录
install(TARGETS Tutorial DESTINATION bin)
# 将`TutorialConfig.h`放到`include`目录
install(FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h"
  DESTINATION include
  )

在本地安装

  • 打开命令托盘(Ctrl + Shift + P), 输入: “cme”, 选择: “CMake: Edit CMake Cache(UI)”
    在这里插入图片描述
  • 在搜索框中输入: "install"完成筛选.
  • CMAKE_INSTALL_PREFIX的值修改为C:/tutorial,或其他不需要管理员权限的目录.
  • 点击"保存"
    在这里插入图片描述
  • 点击状态栏上的Build按钮, 重新构建.
  • 点击状态栏上Build按钮右侧的构建目标, 切换构建目标为"install".
  • 再次点击状态栏上的Build按钮, 完成安装. CMake将安装文件拷贝到CMAKE_INSTALL_PREFIX指定的目录下.
  • 现在你可以通过命令行窗口(cmd), 执行tutorial.exe程序了.
    在这里插入图片描述

测试支持

接下来,让我们测试应用程序. 在顶层CMakeLists.txt文件的末尾,我们可以启用测试,然后添加一些基本测试,以验证应用程序是否正常工作(如果是使用vscode生成的CMakeLists.txt, enable_testing()默认已添加到该文件中).

enable_testing()

# does the application run
add_test(NAME Runs COMMAND Tutorial 25)

# does the usage message work?
add_test(NAME Usage COMMAND Tutorial)
set_tests_properties(Usage
  PROPERTIES PASS_REGULAR_EXPRESSION "Usage:.*number"
  )

# define a function to simplify adding tests
function(do_test target arg result)
  add_test(NAME Comp${arg} COMMAND ${target} ${arg})
  set_tests_properties(Comp${arg}
    PROPERTIES PASS_REGULAR_EXPRESSION ${result}
    )
endfunction()

# do a bunch of result based tests
do_test(Tutorial 4 "4 is 2")
do_test(Tutorial 9 "9 is 3")
do_test(Tutorial 5 "5 is 2.236")
do_test(Tutorial 7 "7 is 2.645")
do_test(Tutorial 25 "25 is 5")
do_test(Tutorial -25 "-25 is (-nan|nan|0)")
do_test(Tutorial 0.0001 "0.0001 is 0.01")

第一个测试只是验证应用程序是否运行,没有段故障或崩溃,并且返回值为零。这是CTest测试的基本形式。

下一个测试使用PASS_REGULAR_EXPRESSION测试属性来验证测试的输出是否包含某些字符串。在本例中,验证当提供的参数数量不正确时是否打印使用消息。

最后,我们创建了一个名为do_test的函数,它运行应用程序并验证计算出的平方根对于给定输入是否正确。每次调用do_test,都会向项目添加一个测试,该测试具有名称、输入参数和对应输入参数的预期结果。

  • 点击状态栏上的’Build’按钮, 重新构建.

  • 点击状态栏上的Run Test按钮, 运行测试.
    在这里插入图片描述

  • 输出窗口打印测试结果如下图所示:
    在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-01-03 16:19:19  更:2022-01-03 16:20:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:38:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码