一键式创建GTest TDD测试平台

适用于C++ GTest测试平台搭建。直接上python脚本。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-import argparse
import os
import platform
import subprocess
from xml.etree import ElementTree as ETdefault_root_path = "d:\\test\\UTtest"class DeveloperTestTool:'''usage:windows:python create_ohos_dev_self_test_exec_env.py -w d:\\test # 指定路径配置orpython3 create_ohos_dev_self_test_exec_env.py # 默认路径配置.linux:python3 create_ohos_dev_self_test_exec_env.py -w /home # 指定路径配置note: no default path in linux'''def __init__(self, root_path):self.current_os = platform.system()if self.current_os == "Windows":self.root_path = default_root_path if len(root_path.strip()) == 0 else root_pathelif self.current_os == "Linux":self.root_path = root_pathself.testcase_path = os.path.join(self.root_path, "testcase", "tests")@staticmethoddef git_clone(remote_url, local_path):subprocess.run(["git", "clone", remote_url, local_path])def config_developer_test(self):download_path = os.path.join(self.root_path, "developer_test")remote_url = "https://gitee.com/openharmony/testfwk_developer_test.git"DeveloperTestTool.git_clone(remote_url, download_path)def config_xdevice(self):download_path = os.path.join(self.root_path, "xdevice")remote_url = "https://gitee.com/openharmony/testfwk_xdevice.git"DeveloperTestTool.git_clone(remote_url, download_path)def update_user_config_xml(self):if self.current_os == "Windows":config_xml_path = self.root_path + "\\developer_test\\config\\user_config.xml"elif self.current_os == "Linux":config_xml_path = os.path.join(self.root_path, "developer_test", "config", "user_config.xml")else:print("This is neither Windows nor Linux.")returntree = ET.parse(config_xml_path)root = tree.getroot()node = root.find("test_cases").find("dir")node.text = self.testcase_pathtree.write(config_xml_path, encoding="utf-8", xml_declaration=True)def done(self):self.config_developer_test()self.config_xdevice()self.update_user_config_xml()def get_args():parser = argparse.ArgumentParser()parser.add_argument("--work_path", "-w", type=str, default=default_root_path, help="work path")args = parser.parse_args()return argsdef main():args = get_args()test_tool = DeveloperTestTool(args.work_path)if not os.path.exists(test_tool.root_path):os.makedirs(test_tool.root_path)if not os.path.exists(test_tool.testcase_path):os.makedirs(test_tool.testcase_path)test_tool.done()if __name__ == "__main__":main()

目录层级:

.
├── developer_test
├── testcase
└── xdevice

developer_test\config\user_config.xml文件中测试用例路径已经更新,请把测试用例目录直接放到该配置指向的路径下:
在这里插入图片描述
使用说明:

  • 指令格式请参见脚本
  • 可以修改默认安装路径(windows平台)。linux下是没有默认安装路径的。
  • 关于GTest怎么跑TDD,请参阅harmony 鸿蒙开发自测试执行框架使用指南。比如运行openharmony的form_fmk仓库(模块)FmsFormMgrServiceTest测试套测试用例FormMgrService_0128:run -t UT -tp form_fwk -ts FmsFormMgrServiceTest -tc FmsFormMgrServiceTest.FormMgrService_0128

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

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

相关文章

常用Dos命令

学过Linux的shell命令的就很好理解,dos命令就是windows系统里面的命令,但是我们很少用,因为有图形化的界面,譬如:可以直接点击创建文件,在文件里面写东西,当然也可以通过终端执行命令创建文件&a…

.NET MVC强类型参数排除和包含属性 Bind 、Exclude

Bind(Include“属性”); 如果相包含多个属性可以用逗号分割符分开:Bind(Include“属性1,属性2,属性n”) 同理,如果想排除一个或多个属性可以使用 Bind(Exclude“属性”) / Bind(Exclude“属性1,属性2,属性n”) 实际应用中添加一个对象对于ID自增的实体…

【算法代码】标准差+正态分布画图+置信区间画图

正态分布画图置信区间 标准差公式如下置信区间图像如下画出置信区间的代码 标准差公式如下 标准差(Standard Deviation),中文环境中又常称均方差,但不同于均方根误差(meansquared error,均方根误差是各数据…

22.状态机设计--可乐机设计(投币三元出一瓶可乐)

理论知识: (1)状态机简写为FSM(Finite State Machine),也称为同步有限状态机。同步是指状态的变化都是在时钟的边沿发送变化,有限值得是状态的个数是可数的。 (2)分类&…

7/8 复盘

后端数据传输? 后端代码的耦合:打点调用、方法调用、接口、继承。 Dao、Service、servlet(controller)各层的作用? Dao负责与数据库交互,执行SQL语句,例如简单的增删改查等等。(要创建对应的接口和实现类…

非营利组织的数据治理之路

在非营利组织的日常运营中,数据不仅是记录过去活动的工具,更是指导未来决策、衡量项目成效、增强公众信任以及优化资源配置的关键要素。 然而,随着数据量的不断增长和复杂性的提升,非营利组织在享受数据带来的便利的同时&#xf…

Java面试八股之MySQL中的MVCC是什么,作用是什么?

MySQL中的MVCC是什么,作用是什么? MySQL中的MVCC(Multiversion Concurrency Control,多版本并发控制)是一种并发控制机制,用于提高数据库的并发性能并确保数据的一致性,特别是在高并发读写场景…

初阶C++(二)

初阶C(二) 1. 重载函数(一)对于重载函数的理解(二)重载函数分类2.引用(一) 引⽤的概念和定义(二)引用的使用(三)const引用 1. 重载函数…

无缝协作:如何实现VMware与Ubuntu虚拟机的剪切板共享!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 剪贴板共享 📒📝 VMware设置📝 安装VMware Tools或open-vm-tools📝 验证剪贴板共享功能⚓️ 相关链接 🚓️📖 介绍 📖 无缝的剪贴板共享是提高工作效率的关键。在VMware和Ubuntu虚拟机的协同工作中,能够直接在宿…

通用机器人里程碑!MIT提出策略组合框架PoCo,解决数据源异构难题,实现机器人多任务灵活执行

18 位人形机器人充当「迎宾」人员,整齐划一向嘉宾挥手,这是 2024 世界人工智能大会上的一个震撼场景,让人们直观感受到了今年机器人的飞速发展。 图源:甲子光年 1954 年,世界上第一台可编程机器人「尤尼梅特」在通用汽…

三维点云配准 -- ICP 算法原理及推导

三维点云配准 -- ICP 算法原理及推导 - 知乎 (zhihu.com) 三维点云配准 -- ICP 算法 | Yilins Blog Alex Segal - Research - Generalized-ICP (ox.ac.uk)

一个项目学习Vue3---if、else、show、for的使用

观察下面代码学习这部分内容 <!--条件和列表渲染--> <template><button click"stateChang">状态切换{{ flag }}</button><span v-if"flag">显示这个</span><span v-else-if"!flag">显示那个Else<…

算法力扣刷题记录 三十八【二叉树的层次遍历应用一及二叉树构建】

前言 二叉树层序遍历应用题目。 记录三十八 【二叉树的层次遍历应用一】 继续。 一、【107.二叉树的层次遍历 II】 题目 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向…

WTM的项目中EFCore如何适配人大金仓数据库

一、WTM是什么 WalkingTec.Mvvm框架&#xff08;简称WTM&#xff09;最早开发与2013年&#xff0c;基于Asp.net MVC3 和 最早的Entity Framework, 当初主要是为了解决公司内部开发效率低&#xff0c;代码风格不统一的问题。2017年9月&#xff0c;将代码移植到了.Net Core上&…

03_Shell变量

【Shell】03_Shell变量 一、环境变量 Linux系统配置文件&#xff08;全局配置文件和用户个人配置文件&#xff09;中定义的变量&#xff0c;提供给所有Shell程序使用 1.1、全局环境变量 1.1.1、配置文件位置 /etc/environment /etc/bashrc&#xff08;或者/etc/bash.bashrc…

《梦醒蝶飞:释放Excel函数与公式的力量》10.1.1函数简介

10.1.1函数简介 BIN2DEC函数是Excel中用于将二进制数转换为十进制数的函数。它在处理二进制数时非常有用&#xff0c;尤其是在电子工程、计算机科学等领域。 10.1.2函数语法&#xff1a; BIN2DEC(number) number&#xff1a;这是要转换的二进制数&#xff0c;必须是以字符串…

HNU小学期BSP软件编程基础十道测试题

http://t.csdnimg.cn/Yv0R1 文章参考了这位大佬的代码&#xff0c;在他的基础上进行了纠错、完善等处理。 配置 编程前的准备工作按大佬的流程即可&#xff0c;稍有不同的是学习通课程网站的资料里没有头文件的整个压缩包了&#xff0c;但我们可以下载某个BSP版的工程文件&am…

磁力搜索引擎是什么?为什么有些资源喜欢用磁力链接?

磁力链接是什么东西&#xff1f;在日常生活中&#xff0c;我们接触的比较多的下载链接是直链。 所谓的直链简单来说就是直接指向服务器文件资源的链接&#xff0c;如B站app的下载链接&#xff0c;这种链接有统一的服务器提供保障&#xff0c;通常比较稳定&#xff0c;可以追溯源…

python调用qt编写的dll

报错&#xff1a;FileNotFoundError: Could not find module F:\pythonProject\MINGW\sgp4Lib.dll (or one of its dependencies). Try using the full path with constructor syntax. 只有两种情况&#xff1a; 1.路径不对 2.库的依赖不全 1、如果是使用了qt库的&#xff0…

JAVA Tesseract OCR引擎

Tess4j是一个基于Tesseract OCR引擎的Java库, Tesseract库最初由惠普实验室于1985年开发&#xff0c;后来被Google收购并于2006年开源。识别效果不好&#xff0c;速度还慢&#xff0c;但是好早好早了。 一、POM依赖 <!--OCR识别https://digi.bib.uni-mannheim.de/tesserac…