当前位置: 首页 > news >正文

【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)

山不在高,有仙则名。水不在深,有龙则灵。

                                        ----CSDN 时时三省

目录

1,移植介绍

2,使用 Code::Blocks 17.12 创建工程

3,搬移文件入工程目录

4,更改代码

5,向工程添加文件

6,运行结果说明

7,更改main.c代码,转换unity test 执行模式

第一种修改方法:

第二种修改方法:

第三种修改方法:

8,移植ok的资源下载

1,移植介绍

        与《【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)》文章移植步骤一样,区别在于 unity_test 的核心文件多移植了 extras 目录里面的文件。

2,使用 Code::Blocks 17.12 创建工程

        参考 《【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)》文档第一章。【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)-CSDN博客

3,搬移文件入工程目录

移入的文件为:
        一:将 Unity\src 下的 unity.c 、 unity.h 、 unity_internals.h 拷贝到工程目录下

        二:将 Unity\extras\fixture\src 下的 unity_fixture.c,unity_fixture.h, unity_fixture_internals.h 拷贝到工程目录下

        三:将 Unity\extras\memory\src 下的 unity_memory.c,unity_memory.h 拷贝到工程目录下

        四:将 Unity\examples\example_2\src 下的 ProductionCode.c 、 ProductionCode.h,ProductionCode2.c 、 ProductionCode2.h 拷贝到工程目录下
        五:将 Unity\examples\example_2\test 下的 TestProductionCode.c,TestProductionCode2.c 及其子目录 \test_runners 下的 TestProductionCode_Runner.c ,TestProductionCode2_Runner.c,all_tests.c拷贝到工程目录下

文件简介:

        前三种移植文件为unity的库文件。第四种为被测试的源代码。第五种为测试代码以及main函数。

迁移好之后的文件目录如下图:

4,更改代码

将 all_test.c 的代码拷贝进 main.c。并将代码更改如下,特别注意下划线位置的代码:

5,向工程添加文件

        将第三步搬移过来的文件,除 all_tests.c 文件外,全部添加进工程,添加之后的工程如下图所示:

备注:

        具体添加方法可参照:【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)-CSDN博客

6,运行结果说明

运行结果如下图的截图:

对于成功和失败的用例,均有打印日志。

7,更改main.c代码,转换unity test 执行模式

第一种修改方法:

假设修改UnityMain() 函数的第一传参为1,则执行结果如下图:

修改参数后,则执行结果中,没有关于成功用例的pass打印了。

第二种修改方法:

假设修改UnityMain() 函数的第一传参为3,argv[] 数组增加元素 "-r", 则执行结果如下图:

如上执行的结果,用例执行两次,且包含pass打印。

第三种修改方法:

假设修改UnityMain() 函数的第一传参为2,argv[] 数组元素 "-h", 则执行结果如下图:

如上执行的结果,用例未执行,打印 argv[] 参数的含义。

备注:

       之所以有这么多种模式,是因为 UnityGetCommandLineOptions()函数。可以打开源码查看此函数。 

8,移植ok的资源下载

下载即可运行:

https://download.csdn.net/download/2301_81226734/89613716

相关文章:

【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,移植介绍 2,使用 Code::Blocks 17.12 创建工程 3,搬移文件入工程目录 4,更改代码 5,向工程添加文件 6,运…...

安装Docker以及安装过程中的错误解决

一、纯享版教程+操作截图 环境:centOs 7 FinalShell !!!此教程针对第一次安装docker的友友,如果已经安装过且报错的朋友,请移步报错合集。 1.卸载旧版本(无论是否安装过都建议执…...

PXE实验

实验前准备 关闭VMware的dhcp 点击 编辑 点击 虚拟网络编辑器 选择 NAT模式 将dhcp取消勾选 准备两台虚拟机 一台试验机,(网络环境正常并且有图形化的界面的rhel7) 一台测试机 init 5 --------------> 开启图形化界面 如…...

Spring - 解析 统一数据格式返回以及统一异常处理

接上篇文章的统一数据格式返回… 文章目录 1. 统一异常处理1.1 使用 2. 统一数据返回和统一异处理是怎么实现的2.1 initHandleAdapters2.2 initHandleExceptionResolvers 1. 统一异常处理 1.1 使用 统一异常处理的两个关键的注解是ControllerAdvice ExceptionHandler Contro…...

用Manim实现——计算和绘制图形下方区域

用Manim实现——计算和绘制图形下方区域 get_area 函数 get_area是一个用于计算和绘制图形下方区域的函数,常用于图形动画库(如 Manim) get_area(graph, x_rangeNone, color(ManimColor(#58C4DD),ManimColor(#83C167)), opacity0.3, bounde…...

MySQL 保姆级教程(十五): 组合查询

第 17 章 组合查询 17.1 组合查询 MySQL 允许执行多个查询(多条 SELECT 语句),并将结果作为单个查询集返回 17.2 创建组合查询 可用 UNION 操作符来组合数条 SQL 查询 17.2.1 使用 UNION 输入: SELECT user.USER FROM user UNION SELEC…...

《动手做科研》06. 如何产生新的研究想法

地址链接:《动手做科研》06. 如何产生新的研究想法 欢迎加入我的知识星球,定期分享AI论文干货知识! 导读: 提出好的研究想法是相当困难的,特别是当你刚接触一个领域时——这需要对文献中的空白有所了解。然而,产生研究想法的过程可…...

【Kubernetes】Deployment 的状态

Deployment 的状态 Deployment 控制器在整个生命周期中存在 3 3 3 种状态: 已完成(Complete)进行中(Progressing)失败(Failed) 通过观察 Deployment 的当前特征,可以判断 Deploym…...

新手学习Gazebo+ros仿真控制小车-----易错和自己理解

赵虚左老师讲的很详细,这里只是理一下思路,说下突然出现“新”概念之间的关系。 urdf文件:里面是配置模型的,既有模型的位置、尺寸、颜色,也包含复杂的物理模型信息比如:转动惯量,碰撞box大小等等&#xff…...

jdbc(mysql)

1.概述 jdbc:java database connection(java与数据库连接) java可以连接不同数据库,不同数据库连接细节不同,具体细节都由数据库自己实现 由java设计出一系列连接数据库的接口规范,然后由不同的数据库开发…...

【Linux】搜索log在哪个文件中执行的方法

在Linux中,如果你需要找到包含特定文本(比如一段log)的文件,你可以使用grep命令结合一些其他工具来实现这一目的。这里有几个方法可以帮助你找到包含特定log内容的文件。 1. 使用grep直接在特定目录或文件中搜索 如果你知道log大…...

web小游戏开发:2048(完)移动操作及动画效果

web小游戏开发:2048(完)移动操作及动画效果 添加随机数字游戏开始时的初始化显示分数移动和合并获取行列元素下标记录移动轨迹完整的 js小结添加随机数字 书接前文,我们在前边定义了一个 move 方法,暂时先往后放放。 在我们已经初始化好的界面上,我们需要先制作一个出现…...

Redis学习笔记——第20章 Lua脚本

第20章 Lua脚本 20.1 创建并修改Lua环境 20.1.1 创建Lua环境 服务器创建一个新的基本的Lua环境 20.1.2 载入函数库 修改Lua环境,载入一些库函数 20.1.3 创建redis全局表格 全局变量,支持在Lua脚本中执行redis命令 20.1.4 使用redis自制随机函数来…...

MySQL--日志管理

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、日志简介 MySQL日志主要分为4类,使用这些日志文件,可以查看MySQL内部发生的事情。这4类日志分别是: 错误日志&#xff1…...

【Nuxt】内置组件和全局样式使用

内置组件 Nuxt3框架也提供一些内置的组件,常用的如下: SEO组件:Html、Body、Head、Title、Meta、Style、Link、NoScript、BaseNuxtWelcome:欢迎页面组件,该组件是nuxt/ui的部分NuxtLayout:是Nuxt自带的页面布局组件NuxtPage:是N…...

Java中spring boot validation 自定义注解使用

创建一个注解 Target({ElementType.FIELD})//需要写注解的三三个要素 Retention(RUNTIME) Documented Constraint(validatedBy {IsSystemYesNoVaildation.class})//绑定 在这里会报错 你需要去实现 public interface IsSystemYesNo {String message() default "数据字典&…...

Android笔试面试题AI答之广播(1)

文章目录 1.简述广播的分类和使用场景 ?一、广播分类二、使用场景举例总结 2.广播的两种注册方式的区别?1. 注册位置与方式2. 生命周期与持久性3. 接收广播的时机4. 安全性与权限5. 优先级与有序广播总结 3.简述广播发送和接收的原理 ?一、广…...

微软商店无法加载,检查你的连接-解决方案

微软商店默认直连国内的服务器。 如果有代理,关闭代理就可以恢复网络了。 但是我就是想用代理,我感觉代理更快, 搜索了很多办法,都没有生效。 然后我在哔哩哔哩的视频下方,看到大家留言,测试了一下&#x…...

数据结构实验报告-树与二叉树

桂 林 理 工 大 学 实 验 报 告 一、实验名称: 实验6 树和二叉树 二、实验内容: 1.编写二叉树的递归遍历算法,实现:给定一棵二叉树的“扩展先序遍历序列”,创建这棵二叉树。 (1)输出二叉树的先序遍历的结点序列。 (2)输出二…...

基于Django+MySQL球馆场地预约系统的设计与实现(源码+论文+部署讲解等)

博主介绍:✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍:我是程序员阿龙&#xff…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析

目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...

Go 语言中的内置运算符

1. 算术运算符 注意: (自增)和--(自减)在 Go 语言中是单独的语句,并不是运算符。 package mainimport "fmt"func main() {fmt.Println("103", 103) // 13fmt.Println("10-3…...

Java中Git基础操作详解(clone、commit、push、branch)

Git是Java开发者必备的版本控制工具,以下是核心操作的详细说明及示例: ​​一、Git基础概念​​ ​​仓库(Repository)​​:存储代码的目录,包含所有版本历史。​​提交(Commit)​​…...

Spring Cloud Alibaba Seata安装+微服务实战

目录 介绍核心功能三层核心架构安装微服务实战创建三个业务数据库编写库存和账户两个Feign接口订单微服务 seata-order-service9701库存微服务 seata-store-service9702账户微服务 seata-account-service9703测试结果 总结 介绍 Spring Cloud Alibaba Seata 是一款开源的分布式…...

达梦使用存储过程实现删除重复记录、判断并添加主键和自增列的逻辑

在达梦数据库中,要确保主键的唯一性约束,可以在存储过程的最前面添加删除重复记录的逻辑。以下是一个完整的存储过程,包含删除重复记录、判断并添加主键和自增列的逻辑: 存储过程示例 -- 切换到指定模式;schema_name 是目标模…...

Python----目标检测(yolov5-7.0安装及训练细胞)

一、下载项目代码 yolov5代码源 GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite yolov5-7.0代码源 Release v7.0 - YOLOv5 SOTA Realtime Instance Segmentation ultralytics/yolov5 GitHub 二、创建虚拟环境 创建一个3.8…...