VectorCAST单元测试参数配置

news2024/11/16 23:59:16

一、打开 VectorCAST

        通常情况下,技术人员会配置一个脚本文件(.bat、.cmd),用户可以通过这个脚本文件来启动 VectorCAST。使用脚本文件启动 VectorCAST,可以在启动时设置好编译器相关的环境变量,方便 VectorCAST 在构建环境时自动调用编译器,找到相关路径。每个环境的启动脚本的内容会有些差异,不 同环境的启动脚本不通用。 如果用户所在行业有覆盖率认证要求时,可以在菜单 Tools 中选择对应的覆盖率认证要求。

 

 VectorCAST 内置了以下行业覆盖率:

1. DO-178 B/C (Avionics 航空航天)

2. ISO-26262(Automotive 汽车)

3. IEC-61508(Industrial 工业)

4. EN-50128(Railway 轨道交通)

5. IEC-62304(Medical 医疗)

二、创建环境

1、建立测试环境

菜单 File –> New -> C/C++ Environment,会打开环境创建向导窗口,在环境创建向导窗口可以对 新的环境进行设置。

 

 (1)第一步:设置编译器

         VectorCAST 支持很多种编译器,用户可以根据自己实际需要选择对应编译器。如果没有找到需要的 编译器,也可以选择相近的编译器,然后对它的设置进行修改。点击左上角的 Compilers,在弹出的菜单 中选择被测工程的对应的编译器。

 

 设置编译命令

在下方第一个选项卡(Preprocessor/ Compiler)中,可以设置编译器的预处理命令和编译命令。  Preprocessor command:预处理器命令

 Compile command:编译命令

         点击下方的 Parse Command Line 按钮,可以自动解析编译命令中的-I 和-D 选项。

        在上方文本框中粘贴完整的编译命令,点击 Parse 按钮,会自动将-I (Includes) 和-D (Defines) 选项 解析出来,解析后的内容可以在下方的文本框查看,点击 OK 按钮后,这些解析的结果可以同步在设置中。

设置链接命令

 在下方第二个选项卡(Linker/Debug)中,可以设置编译器的链接命令和调试时使用的调试器命令。

 Linker command:链接器命令

 Linker options:链接器选项,在这里可以填写要链接的第三方库等

 Debugger command:调试器命令,用于调试执行测试用例时的命令

(2)第二步:给环境命名 

 在这里可以填写环境名称,环境名称需要是英文,小写英文字母会自动转换为大写。完成后点击 Next。

 (3)第三步:选择测试方法

 VectorCAST 支持以下四种测试方法:

 Traditional Unit Testing:传统测试单元测试

 Object File Testing:对目标文件进行测试

 Library Interface Testing:对库文件进行测试

 Test-Driven Devlopment:测试驱动开发

        第一种是 Traditional Unit Testing,传统测试单元测试方法,这种方法是根据测试代码生成测试用 例,然后执行用例,生成报告;第四种是 Test-Driven Devlopment,测试驱动开发,与第一种相反,先 生成测试用例,根据测试用例编写代码,一般用于驱动开发;第二种是 Object File Testing,对目标文 件进行测试;第三种是 Library Interface Testing,对库文件进行测试。一般在这一步选择第一种,传统 单元测试,完成后点击 Next。

 

 (4)第四步:选择覆盖率类型

         这一步选择覆盖率类型,在 Coverage type 旁边的下拉菜单中选择需要的覆盖率类型,覆盖率分为 None(无覆盖率)、Statement(语句覆盖)、Branch(分支覆盖)、Basis Paths(基本路径覆盖)、MC/DC (MC/DC 覆盖)、Function(函数覆盖)、Function + Function Call(函数+函数接口覆盖)、Statement + Branch(语句+分支覆盖)和 Statement + Branch + MC/DC(语句+分支+MC/DC 覆盖)。在这一 步需要根据实际的需求选择合适的覆盖率类型。完成后点击 Next。

 

 (5)第五步:选择项目的文件夹

点击 按钮,选择待测项目文件夹,在这一步,VectorCAST 会遍历项目文件夹下所有的文件夹。 完成后点击 Next。

 (6)第六步:选择被测文件

         在这一步,VectorCAST 会识别出项目文件夹下所有的源文件,并将其显示在左侧区域。在单元测试 阶段,每个测试环境添加一个文件进行单元测试。

        在左侧区域选中要添加的文件,点击 按钮,将文件添加进环境,或双击要添加的文件,将文件添 加进环境。在这里第七步和第八步不需要进行任何设置,完成后点击 Build 按钮。

         点击 Build 按钮之后,会自动构建测试环境,这个测试环境包含了被测代码和测试驱动代码,这些 代码组成了一个完整的测试套件。VectorCAST 会调用项目本身的编译器,对测试套件进行编译和链接, 生成一个可执行文件,这个可执行文件运行在目标板或模拟器上。

        在单元测试阶段,需要对每一个源文件创建一个单元测试环境,对文件中的每个函数进行单元测试。

(7)勾选“Tools->Options->Builder->Stub fuctions without prototypes”

这样,即使是被测试的文件中调用了别的文件定义的函数,也不会再报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业毛利高,进项抵扣少,增值税高,怎么办?

企业毛利高,进项抵扣少,增值税高,怎么办? 《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 金税四期的出现,让很多企业都陷入了税负重的不利局面。当然了在此环境之下&#x…

回溯法总结

文章目录 回溯法如何理解回溯法 回溯算法模板框架如下:树枝去重树层去重回溯法去重什么时候去重?树层去重数组used[i-1]:回溯函数的参数startIndex:回溯函数的参数用Set的对象uset:局部变量例题 其它细节对于组合问题&…

测试开发知识图谱

目录 前言: 1 测试方法与理论 2 Shell脚本相关 3 数据库相关 4 git 代码管理 5 Python 编程语言与测试框架 6 Web 自动化测试 7 移动端 app 自动化测试 8 常用开源测试平台 9 客户端专项测试 10 服务端接口测试 11 服务端接口自动化测试 12 服务端性能…

国产CAN收发器XL1050可替代NXP的TJA1050T,性能参数基本一致

CAN收发器是CAN控制器和物理总线之间的接口,在工控等需要CAN通信的应用场合是必要的,工程师通常采用NXP、TI等品牌的,TJA1050T是常见型号之一。XL1050是信路达一款CAN收发器,本文讨论信路达的XL1050 替代NXP的TJA1050T的可行性。 …

前后端分离,前端代理设置

1. 没有vue.config.js的配置方法 1.1 在config目录下的index.js里面加入如下所示代码 proxyTable: {"/api": { // 不能写成^/apitarget: "http://localhost:50000", // 只写域名即可ws: true,changeOrigin: true, // 允许跨域pathRewrite: { // 重写&…

leetcode:除自身以外数组的乘积

除自身以外数组的乘积 medium 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请**不要使用除法&a…

抖音seo矩阵系统源码搭建技术+二开开源代码定制部署

抖音SEO源码是指将抖音平台上的视频资源进行筛选、排序等操作,进而提升其在搜索排名中的权重,从而让更多的用户能够发现并观看到这些视频资源。而抖音SEO矩阵系统源码则是指通过建立一个分析系统,分析抖音中的用户、视频、标签等数据&#xf…

【数据分类】基于蜣螂优化算法优化支持向量机的数据分类方法 DBO-SVM分类算法【Matlab代码#47】

文章目录 【可更换其他群智能算法,获取资源请见文章第6节:资源获取】1. 蜣螂优化算法(DBO)2. 支持向量机(SVM)3. DBO-SVM分类模型4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他群智能算法&#…

Java Leetcode 动态规划 91. 解码方法

未优化版本代码展示: class Solution {public int numDecodings(String s) {char[]charss.toCharArray();int lengths.length();//创建dp数组int[]dpnew int[length];//初始化if(chars[0]!0){dp[0]1;}//特殊情况处理if(length1){return dp[0];}if(chars[1]!0){dp[1…

Postman高级应用——变量、流程控制、调试、公共函数、外部数据文件

目录 流程控制 调试 公共函数 外部数据文件 总结: Postman 提供了四种类型的变量 环境变量(Environment Variable) 不同的环境,使用不同的环境变量,例如:测试过程中经常会用到 测试环境,外…

PHP5.4以下解决json_encode中文UNICODE转码问题

PHP5.4以下解决json_encode中文UNICODE转码问题 把汉字先urlencode 然后再使用json_encode, json_encode之后 再次使用urldecode来解码, 这样编码出来的json数组中的 汉字就不会出现unicode编码了。 $params[importList][recipientAddress] urlencode(&…

Spring WebFlux使用函数式编程模型构建异步非阻塞服务

1 前言 上文引入了 Spring 框架中专门用于构建响应式 Web 服务的 WebFlux 框架,同时我也给出了两种创建 RESTful 风格 HTTP 端点实现方法中的一种,即注解编程模型。 本文介绍另一种实现方法——如何使用函数式编程模型创建响应式 RESTful 服务&#xf…

解决子元素设置margin-top使父元素也跟着向下移动的问题

先看代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…

rpc、gRPC快速入门,python调用,protobuf协议

什么是rpc?grpc又是什么&#xff1f; 什么是RPC 远程过程调用协议RPC (Remote Procedure Call Protocol) RPC是指远程过程调用&#xff0c;也就是说两台服务器A&#xff0c;B&#xff0c;一个应用部署在A服务器上&#xff0c;想要调用B服务器上应用提供的函数/方法&#xff…

何洁「桔梗」2023巡演广州站7月22日强势回归!

睽违5年&#xff0c;从心出发。7月22日&#xff0c;何洁携新专辑《桔梗》和你相约广州。这次巡回演唱会不仅会带来回忆满满的经典曲目&#xff0c;全新专辑里的作品也会惊喜开唱&#xff0c;期待值拉满。 19岁时年少成名&#xff0c;以不服输的态度诠释音乐至今&#xff0c;应该…

linux中安装nginx

2.安装nginx 2.1 安装nginx前&#xff0c;需要安装的依赖&#xff08;可能是由于nginx版本旧原因&#xff0c;可能最新或较新版本不需安装这些依赖&#xff09; 如下四个依赖需要安装到linux中 2.1.1 安装 pcre 依赖 &#xff08;使用wget命令&#xff09; 步骤一&#xff1…

自动应急灯电路/12V供电的电子节能灯电路设计

自动应急灯电路 本例介绍的自动应急灯&#xff0c;在白天或夜晚有灯光时不工作&#xff0c;当夜晚关灯后或停电时能自动点亮&#xff0c;延时一段时间后能自动熄灭。 一、电路工作原理 电路原理如图 25 所示。 该自动应急灯电路由光控灯电路、电子开关电路和延时照明电路组成…

关于时间序列的平稳性检测

时间序列的平稳性检验 对时间序列的研究和处理&#xff0c;其实也算是有点意思。很多时候就是耍流氓&#xff0c;我们假设它有规律&#xff0c;然后去研究它&#xff0c;等老天开眼的时候&#xff0c;总能找出点东西来自圆其说&#xff0c;嘿嘿。 ARIMA家族的时序模型&#xf…

Java基层云HIS系统源码融合B/S电子病历系统(SaaS模式)

一、云his系统概述 ta是一款满足二甲医院、基层医院机构业务需要的健康卫生云系统。该系统能帮助基层医院机构完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等一系列常规功能&#xff0c;还能与公卫、PAC…

LPDDR4X Ball Description(引脚描述)

SymbolType&#xff08;DDR视角&#xff09;Function中文翻译CK_A CK_An CK_B CK_BnInputClock: CK and CKn are differential clock inputs. All address, command, and control input signals are sampled on the crossing of the positive edge of CK and the negative edge…