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

专业网站建设公司兴田德润简介专门做护肤品网站

专业网站建设公司兴田德润简介,专门做护肤品网站,基层网站建设作用,wordpress资源主题一、引言 在软件开发过程中,尽早发现并解决代码中的缺陷对于提高软件质量至关重要。OpenVela 为开发者提供了一个全面的自测试框架 CMocka,借助这个框架,开发者能够开发相关的测试用例,在开发阶段早期检测出缺陷,从而提…

一、引言

在软件开发过程中,尽早发现并解决代码中的缺陷对于提高软件质量至关重要。OpenVela 为开发者提供了一个全面的自测试框架 CMocka,借助这个框架,开发者能够开发相关的测试用例,在开发阶段早期检测出缺陷,从而提升代码质量。本文将详细介绍如何使用该框架开发测试用例。

二、代码目录结构

OpenVela 的测试代码目录结构如下:

├─tests
│    └──scripts
│       ├── env                                       # 自动化框架的环境要求
│       ├── script                                    # 自动化框架执行的测试脚本
│       └── utils
│    ├── testcases                                    # 测试工具集合
│    └── testsuites                                   # CMocka 测试工具集合

三、开发测试用例

3.1 创建测试用例目录

若要使用 CMocka 编写新的测试用例,需将所有测试用例置于 tests 目录下。具体步骤如下:

  1. 创建子目录:为测试用例创建一个子目录以及必要的子目录,用于存放测试用例文件、头文件、测试资源和测试入口文件。目录结构示例如下:
├─tests
│   └── mytest  # 自动化测试用例集名称,可根据实际情况命名
│       ├── Kconfig
│       ├── Make.defs
│       ├── Makefile
│       ├── include    # 测试用例需要用到的头文件,包含自定义函数的声明
│       ├── src        # 测试用例文件存放目录
│       ├── util       # 公共函数文件存放目录
  1. 修改 Kconfig 文件:在 Kconfig 文件中定义测试开关、优先级和 STACKSIZE。示例如下:
config MY_TESTS                 tristate "vela auto tests mytest"default ndepends on TESTING_CMOCKA             # 必须包含,可以依赖所测试的模块---help---Enable auto tests for the open-velaif MY_TESTSconfig MY_TESTS_PRIORITY            # 优先级int "Task priority"default 100config MY_TESTS_STACKSIZE           # 栈大小int "Stack size"default DEFAULT_TASK_STACKSIZEendif
  1. 修改 Makefile 文件:定义测试的 PROGNAME 和 MAINSRC 文件。需注意,PROGNAME 必须以 cmocka_ 开头。示例如下:
include $(APPDIR)/Make.defs
# 公共函数和头文件
CFLAGS += -I$(APPDIR)/tests/mytest/util
CSRCS += $(wildcard $(APPDIR)/tests/mytest/util/*.c)# 测试用例文件和测试用例头文件
CFLAGS += -I$(APPDIR)/tests/mytest/include
CSRCS += $(wildcard $(APPDIR)/tests/mytest/src/*.c)# 所需 API 的头文件(可根据情况添加)
CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/includePRIORITY  = $(CONFIG_MY_TESTS_PRIORITY)
STACKSIZE = $(CONFIG_MY_TESTS_STACKSIZE)
MODULE    = $(CONFIG_MY_TESTS)PROGNAME += cmocka_mytest_test       # 测试应用程序名称,用于在 nsh 中启动
MAINSRC  += $(CURDIR)/mytest_entry.c  # 所有编写的测试用例的统一测试入口文件,CMocka 单元测试入口文件
include $(APPDIR)/Application.mk
  1. 修改 Make.defs 文件:
ifneq ($(CONFIG_MY_TESTS),)
CONFIGURED_APPS += $(APPDIR)/tests/mytest
endif

3.2 编写测试用例

在 src 目录下创建新的测试用例文件,建议每个文件只包含一个测试用例。

3.2.1 目录结构

├─tests
│   └── mytest     # 场景自动化测试用例集
│       ├── Kconfig
│       ├── Make.defs
│       ├── Makefile
│       ├── include    # 测试用例需要用到的头文件,包含自定义函数的声明
│       │   ├── mytest.h
│       ├── src        # 测试用例文件存放目录
│       │   ├── test_mytest_example_01.c
│       │   ├── test_mytest_example_02.c
│       │   ├── test_mytest_example_03.c
│       ├── util

3.2.2 测试用例文件编写规则

  • 文件命名:以关键字 test_ 开头,包含 feature name,例如 test_mytest_example_01.c
  • 测试函数命名:以关键字 test_ 开头,例如 test_mytest_example_01(FAR void **state)

完整示例如下:

/***************************************************************************** Included Files****************************************************************************/
// 使用 CMocka 框架时必须包含的 5 个头文件
#include <stdarg.h>
#include <stddef.h>
#include <stdint.h>
#include <setjmp.h>
#include <cmocka.h>// 其他系统头文件
#include <xxx.h> 
// 测试函数定义头文件
#include "mytest.h"
#include "mytest_util.h"/***************************************************************************** Name: test_mytest_example_01* Description: This is a simple example.****************************************************************************/void test_mytest_example_01(FAR void **state)
{int ret = 15;assert_true(ret > 0);
}

3.2.3 编写头文件

在 include 目录下编写头文件,命名建议包含 feature 和 test 关键字,例如 mytest.h。在头文件中定义测试函数和测试用例集的宏,将所有需要测试的用例添加到宏中。

3.3 编写测试入口文件

为了更好地将测试用例和各模块的测试入口文件解耦,确保对单个模块的修改不会导致整个测试套件不可用,将测试入口文件隔离并放置在该模块测试用例的根目录下。完整的目录结构如下:

├─tests
│   └── mytest
│       ├── Kconfig
│       ├── Make.defs
│       ├── Makefile
│       ├── include    # 测试用例需要用到的头文件,包含自定义函数的声明
│       │   ├── mytest.h
│       ├── src        # 测试用例文件存放目录
│       │   ├── test_mytest_example_01.c
│       │   ├── test_mytest_example_02.c
│       │   ├── test_mytest_example_03.c   
│       ├── util
│       ├── mytest_test.c         # 运行时所有编写的测试用例的入口文件

测试用例入口文件包含 CMocka 测试所需的头文件和主函数。

四、执行测试用例

1. 编译测试用例

  1. 使用 menuconfig 打开 TESTING_CMOCKA 开关。

注意:TESTING_CMOCKA依赖 LIBC_REGEX,而 LIBC_REGEX 依赖ALLOW_MIT_COMPONENTS,如果这两个config没有打开,需要先将其打开 。

./build.sh vendor/openvela/boards/vela/configs/goldfish-armeabi-v7a-ap menuconfig

在这里插入图片描述

在这里插入图片描述
2. 使用 menuconfig 打开模块定义的测试用例开关(CONFIG_MYTEST_TEST)。

在这里插入图片描述
3. 进行编译,执行如下命令

./build.sh vendor/openvela/boards/vela/configs/goldfish-armeabi-v7a-ap -e -Werror -j20

2. 执行测试用例

编译完成后进入到 nsh,执行如下命令:

./emulator.sh vela

在这里插入图片描述

  • 输入对应 PROGNAME 进行测试,这种方式会按顺序将 group 中的测试用例全部跑一遍,如果需要某个测试用里的执行结果则必须等待一段时间。

在这里插入图片描述

  • openvela 中实现了 cmocka 的命令行工具,用于灵活的执行测试用例,下面展示了使用其打印用例、执行指定用例的方式。
    • 打印所有用例,执行如下命令:
cmocka -l 

在这里插入图片描述

  • 执行 TestNuttxMm01 用例,-t 参数会匹配相应的用例名称。
cmocka -t TestNuttxMm01

在这里插入图片描述

3. 查看测试结果

用例的执行结果有三种:

  • PASSED
  • FAILED
  • SKIPPED
    说明:如果测试用例 FAILED,会显示相应的错误信息,包括代码文件、文件行号以及异常原因,方便去定位问题。所有用例执行完毕后,会对三种结果的用例进行统计。

在这里插入图片描述

五、总结

通过以上步骤,我们可以使用 OpenVela 提供的 CMocka 框架开发测试用例,在开发阶段早期发现并解决代码中的缺陷,从而提高代码质量。在实际开发过程中,我们可以根据具体需求对测试用例进行扩展和优化,以确保软件的稳定性和可靠性。


文章转载自:

http://mGwEcOmV.qzpqp.cn
http://AeP9jcSj.qzpqp.cn
http://fHsM9gGg.qzpqp.cn
http://PHWj9nlK.qzpqp.cn
http://gTGd8axe.qzpqp.cn
http://DCBd7W52.qzpqp.cn
http://nM32COlz.qzpqp.cn
http://z3oiTR9J.qzpqp.cn
http://wegG8fdy.qzpqp.cn
http://qb6NtXvW.qzpqp.cn
http://fLei4v7T.qzpqp.cn
http://Z1ukEJQZ.qzpqp.cn
http://Z2kAJPL5.qzpqp.cn
http://vtYZaMNV.qzpqp.cn
http://S1rOT7kJ.qzpqp.cn
http://4kcSPHzN.qzpqp.cn
http://VAlZ7B8y.qzpqp.cn
http://5vzRR9fK.qzpqp.cn
http://wWFVvuH3.qzpqp.cn
http://PhJolvdW.qzpqp.cn
http://feztqnwL.qzpqp.cn
http://VrzUWFoA.qzpqp.cn
http://shf3ZYMm.qzpqp.cn
http://olIuDlPa.qzpqp.cn
http://e75R92W7.qzpqp.cn
http://N0qufroG.qzpqp.cn
http://J9KI4PAv.qzpqp.cn
http://3xt6wEgw.qzpqp.cn
http://WRPFzwI7.qzpqp.cn
http://uNrtg3fE.qzpqp.cn
http://www.dtcms.com/wzjs/774148.html

相关文章:

  • 市北网站建设wordpress活动报名
  • 优质的设计网站有哪些成都seo推广
  • 建设网站教学不花钱做网站
  • 广州 科技网站建设公司网站怎么做适配
  • 自助建子站娱乐平台网站开发免费
  • 个人注册公司网站空间个人网站允许做内部论坛吗
  • 计算机怎么建设网站网站建设需要桂ajax吗
  • 营销网站试用逸阳网站建设的目标
  • dw php网站开发房地产项目建设背景
  • 农业建设管理信息网站关键词热度分析
  • 做网站找哪家好要钱吗如何用网站首页做404
  • seopc流量排名网站视频号推广入口
  • 做网站平台的注册什么商标wordpress 行间距插件
  • 网站建设流程是这样的 里面有很上海市住宅建设发展中心网站
  • 网站设计公司深圳一流本科专业建设网站
  • 天天向上 网站建设江苏路街道网站建设
  • 宁波做外贸网站河北建筑工程学院招生网官网
  • 广告网站建设价格绵阳做网站的
  • 有做销售产品的网站有哪些建设网站员工招聘策划
  • 网站的优化与推广分析公司介绍网页模板
  • hyip网站开发wordpress插件 数据库
  • 如何在自己的服务器上搭建微网站品牌建设部门的搭建
  • 哈尔滨模板建站新报价常德做网站专业公司哪家好
  • 网页制作工具分为站长工具seo综合查询怎么看数据
  • 莆田建设网站盐城哪家专业做网站
  • 如何制作简易 网站做网站需要用到那些软件
  • 电脑维修网站模板vi设计应用部分有哪些
  • 电商网站建设思维导图专业网站优化排名
  • 网站做排名有用吗电子商务网站建设与管理试题
  • 企业单位网站怎么做自己做网站是不是需要写代码