VectorCAST单元测试参数配置

一、打开 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.hqwc.cn/news/23088.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-ment ui 表格组件table实现列的动态插入功能

在实际需求中我们经常遇到各种奇葩的需求,不足为奇。每个项目的需求各不相同,实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种, 1. 插入的位置如果是已知的,我知道在哪个标题的…

redis -速成

目录 (一)认识 Redis 1.1数据库分类 1.2 什么是Redis 1.2.1 redis简介 1.2.2 谁在用Redis 1.2.3 怎么学redis 1.2.4 Redis的安装 2 数据类型 2.1 概况 2.2 String类型 2.2.1 常用的命令 2.2.2 非常用命令 2.2.3 举例 2.2.4应用场景&#xf…

ELk日志平台搭建

ELk日志平台搭建 一、ELK概述 1.ELK简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。2.组件 ●ElasticSearch:是基于Lucene…

qt和vue的交互

1、首先在vue项目中引入qwebchannel /******************************************************************************** Copyright (C) 2016 The Qt Company Ltd.** Copyright (C) 2016 Klarlvdalens Datakonsult AB, a KDAB Group company, infokdab.com, author Milian …

LangChain + ChatGLM2-6B 搭建个人专属知识库

之前教过大家利用 langchain ChatGLM-6B 实现个人专属知识库,非常简单易上手。最近,智谱 AI 研发团队又推出了 ChatGLM 系列的新模型 ChatGLM2-6B,是开源中英双语对话模型 ChatGLM-6B 的第二代版本,性能更强悍。 树先生之所以现…

能“出汗”,会“呼吸”的户外行走机器人

美国亚利桑那州立大学(ASU)科学家研制出了世界上第一个能像人类一样出汗、颤抖和呼吸的户外行走机器人模型。这个机器人名叫ANDI,是一个能模仿人类出汗的热敏“热模型”。 ANDI 身上不仅有可以使它行走的关节,还有其他机器人身上都没有的东西——它浑身…

编译libtiff库给IOS平台用

打开libtiff官方网 : libtiff / libtiff GitLab 克隆: git clone --recursive https://gitlab.com/libtiff/libtiff.git 克隆成功并打开libtiff目录,发现有autogen.sh 与CMakeLists.txt所以可生成Configure程序来配置并编译,也可直接使用CMake-GUI来配置编译,选择其中一种 …

R语言的水文、水环境模型优化技术及快速率定方法与多模型案例实践

在水利、环境、生态、机械以及航天等领域中,数学模型已经成为一种常用的技术手段。同时,为了提高模型的性能,减小模型误用带来的风险;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

Prompt本质解密及Evaluation实战与源码解析(二)

9.4 Evaluation for Agents源码解析 如图9-4所示,转过来,我们再看一下LangChain框架代理评估(Evaluation for Agents)的源代码。 图9- 4 LangChain的evaluation agents目录 在trajectory_eval_prompt.py文件里面,写了一个非常经典的提示词。 1. """提示…

【图像处理】使用 Python 进行图像增强

一、说明 图像增强技术的深度和复杂性往往在一系列捕获和共享中被忽视。从傅里叶变换到白平衡和直方图处理,各种方法都可以将普通照片转换为引人注目的图像。这篇博文旨在解开这些技术。 我在节日期间拍了一张照片,在夜间庆祝活动中。遗憾的是&#xff0…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 一)

初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前,建议开发者具备TS语…

【已解决】html元素如何使字体占据相同的元素显得整齐

本博文源于自身的亲身实践,让html的文本元素对齐,如果不让其对齐就会变得很丑陋,如下图,那么如何设置才能让元素占据相同呢? 文章目录 1、问题来源2、问题解决思路3、问题解决方案4、问题完整源码及效果 1、问题来源 …