框架

Python测试框架之unittest和pytest

梦想与她 提交于 2020-01-20 21:02:16
目前搜狗商城接口测试框架用的是unittest+HTMLTestRunner,case数有1097条,目前运行一次自动化测试,时长约为30分钟,期望控制在10分钟或者更短的时间内。近期打算重新优化框架,着重解决运行效率低的问题。最近调研了一下另一种主流测试框架Pytest,Pytest是一个非常成熟的全功能的Python测试框架,本文主要对比了Unittest和Pytest这两种较为流行的Python测试框架。 一、Unittest Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。 Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。 示例: 执行结果: 注:unittest有一个关联模块unittest2,但unittest2仅适用于Python 2.4-2.6。这是由于从Python 2.7开始,unittest增加一些新的特性。为了在老的版本中支持这些特性,所以提供了unittest2这个库。但对于Python 2.7及之后的版本,unittest是唯一的。本次示例中使用的为python2.7。 二、Pytest

UCOSII框架

妖精的绣舞 提交于 2020-01-20 08:59:26
  关于嵌入式实时操作系统ucosii,它的实质是一个微内核,它只提供了任务管理、任务的通信同步和简单的存储管理三项基本服务。μC/OS-Ⅱ的体系结构如图所示,它只对处理器和硬件时钟进行了抽象和逻辑封装,而没有提供其他硬件抽象层。   也就是说,移植μC/OS-Ⅱ时,其主要工作就是根据具体的硬件换一个或者添加一个硬件抽象层。在移植过程中,主要是对与处理器相关的代码进行修改。    OS_CPU.H :它与处理器相关,一些部分应根据处理器的情况进行修改(与处理器相关的常数和宏),还有一些定义数据类型的部分,无需修改。    OS_CPU_A.ASM :它集中了与处理器相关的汇编语言代码。它必须根据实际的处理器进行移植。    OS_CPU_C.C :它集中了与处理器相关的C语言代码。它也必须根据实际的处理器进行移植。   ucosii系统提供的核心功能模块都是以C文件形式:   从ucosii的框架中,还可以看到与应用程序相关的代码,这是对于不同的应用,实际的处理器能力和资源不同,需要的功能也不同,ucosii具有高度的可裁剪性,各种功能开关在OS_CFG.H配置文件中,用户可剪裁的代码放在 #if 和 #endif 预编译指令之间,编译时编译器根据 #if 预编译指令后面的常数的值来确定。而includes.h文件包含了应用所需调用的全部头文件,应用中的多数.C文件都应包含此文件。

.NET平台下开源框架

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-20 08:36:15
一、AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。 NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言规范CLS(Common Language Specification),它可以在任何.NET开发环境中使用,包括微软的Visual Studio .NET。 PostSharp读取.NET字节模块,转换成对象模型。让插件分析和转换这个模型并写回到MSIL。PostSharp使开发程序分析应用程序容易得像分析代码规则和设计模式,它使程序开发的思想变革为面向方面软件开发(AOSD/AOD)思想。 AspectDNG的目标是为.NET开发人员提供简单而功能强大的AOP-GAOP实现。它效仿java下的开源工具AspectJ 和 Spoon,成熟程度也很接近它们。 RAIL(Runtime Assembly Instrumentation Library) 开源项目可以在C

golang echo web框架中间件的实现

倖福魔咒の 提交于 2020-01-20 03:21:54
使用echo框架可以方便的定义自己的中间件,这里研究下echo中间件的实现以及是如何实现链式调用的。 比如我们有下面的中间件: func CalHandleTime(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) (err error) { start := time.Now() defer func() { fmt.Println("请求处理时间:", time.Since(start) / time.MilliSecond) } err = next(c) return } } func main() { e := echo.New() e.Use(CalHandleTime) ... } 该中间件计算了请求处理时间,CalHandleTime仅仅返回的是一个echo.HandlerFunc方法,此时HandlerFunc方法中的代码并没有被执行。 HandlerFunc的定义如下: HandlerFunc func(Context) error 中间件方法(MiddlewareFunc)的定义就是传入一个HandlerFunc,然后返回一个HandlerFunc: MiddlewareFunc func(HandlerFunc) HandlerFunc 可以看下e.Use()的实现

yolov3(算法框架解析)

依然范特西╮ 提交于 2020-01-20 00:42:14
应用见: https://blog.csdn.net/Darlingqiang/article/details/103889245 https://blog.csdn.net/Darlingqiang/article/details/104040582 首先通过一些简单的应用实现去理解yolov3的网络框架,接着让我们开始对yolov3的网络框架解析之旅。 首先,说一下为啥要用到这个yolov3的网络框架,就是想实现3d空间的目标的位置与类别的定位与追踪,以期望基于该框架做一点更深入的研究。 yolov2 yolov3朴素的求解问题的思路表示: yolov3的网络框架如下图所示 数据结构变化过程: 张量变化: 来源: CSDN 作者: Darlingqiang 链接: https://blog.csdn.net/Darlingqiang/article/details/104041079

MyBatis框架之适配器模式

六眼飞鱼酱① 提交于 2020-01-20 00:00:54
MyBatis框架有多处使用了设计模式,我们在阅读其源码时,需要好好体会它对设计模式的使用,以便于照着葫芦画瓢。本篇主要是记录一下适配器模式的使用。 适配器模式理解起来很简单,相当于使用了一个接口,将老旧的功能包装一下,使之适应新的需求(或许有错误,但错就错吧)。 MyBatis框架对适配器的使用,主要体现在Log日志这一块。 MyBatis自个定义了一个Log接口,接口嘛,规范而已。 而而且要怎么操作我不管,只需要按照我的规范来即可。 /** * MyBatis定义的日志接口规范 */ public interface Log { boolean isDebugEnabled(); boolean isTraceEnabled(); void error(String s, Throwable e); void error(String s); void debug(String s); void trace(String s); void warn(String s); } 该接口定义了Mybatis直接使用的日志方法,而Log接口具体由谁来实现呢?Mybatis提供了多种日志框架的实现,这些实现都匹配这个Log接口所定义的接口方法,最终实现了所有外部日志框架到Mybatis日志包的适配。 MyBatis就是这么刚,提供了如此之多实现方式。 啥意思呢

Spring

无人久伴 提交于 2020-01-19 23:05:22
1、Spring 1.1、简介 Spring:春天------>给软件行业带来了春天 2002,首次推出了Spring框架的雏形:interface21框架 Spring框架即以interface21框架未基础,经过重新设计,并不断丰富其内涵,于2004年3月24号发布了1.0正式版。 Rod Johnson Spring Framework创始人,著名作者。 Rod 在 悉尼大学 不仅获得了计算机学位,同时还获得了音乐学位。更令人吃惊的是在回到软件开发领域之前,他还获得了音乐学的博士学位。 Spring理念:实现有的技术更加太容易使用,本身是一个大杂烩,整合了现有的技术框架! SSH: struct2 + Spring + Hibernate(全自动) SSM: SpringMVC + Spring + Mybatis(半自动 更灵活) 官网:https://spring.io/projects/spring-framework#overview 官方下载地址:https://repo.spring.io/release/org/springframework/spring/ GitHub: https://github.com/spring-projects/spring-framework <!-- https://mvnrepository.com/artifact/org

Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据

為{幸葍}努か 提交于 2020-01-19 22:13:43
SpringMVC SpringMVC是一种轻量级的、基于MVC的Web层应用框架。 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。 优点:   1、天生与Spring框架集成,如:(IOC,AOP)   2、支持Restful风格   3、支持灵活的URL到页面控制器的映射   4、非常容易与其他视图技术集成,如:Velocity、FreeMarker等等   5、因为模型数据不存放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用)   6、非常灵活的数据验证、格式化和数据绑定机制、能使用任何对象进行数据绑定,   7、更加简单、强大的异常处理   8、对静态资源的支持   9、支持灵活的本地化、主题等解析 常用主要组件   ① DispatcherServlet :前端控制器   ② Controller :处理器/页面控制器,做的是MVC中的C的事情,但控制逻辑转移到前端控制器了,用于对请求进行处理   ③ HandlerMapping:请求映射到处理器,找谁来处理,如果映射成功返回一个HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器对象)

使用Ionic3框架开始第一个混合开发APP

烈酒焚心 提交于 2020-01-19 20:15:57
什么是混合开发? 简单来说,就是在开发移动应用中同时使用 Native 和 Web 的开发方式。 什么是Ionic3框架? Ionic3框架是一个混合开发框架,其本身依赖于 Angular , Sass , Cordova 。 使用Ionic3框架可以做什么? 使用Ionic3可以使用前端相关技术快速开发多平台的移动APP。 Ionic3环境搭建 安装 Visual Studio 2011 以上版本。 安装 python 2.7 版本。 安装 node 。 使用 npm 全局安装 Cordova 和 Ionic 。命令行输入 npm install -g cordova ionic 安装 Android Studio 。 安装 Git 。(可选) 安装完了之后,命令行输入 ionic -h 如下图 初始化第一个应用 输入 ionic start -h 查看初始化命令详情,如下图。 name 是项目名 template 是初始化的模板 --type 是项目类型,有 Ionic1 和 Ionic-angular (也就是 Ionic2 和 Ionic3 ) --app-name 是App的名称,可以之后通过 config.xml 修改 --list 是打印出所有可用模板 --cordova 是集成 Cordova --no-deps 是不安装 npm 依赖 --no-git 是不初始化