test

golang test说明解读

落花浮王杯 提交于 2020-03-19 13:00:02
3 月,跳不动了?>>> go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help build,这些是编译运行过程中需要使用到的参数,一般设置为空 关于packages,调用go help packages,这些是关于包的管理,一般设置为空 关于flags for test binary,调用go help testflag,这些是go test过程中经常使用到的参数 -test.v : 是否输出全部的单元测试用例(不管成功或者失败),默认没有加上,所以只输出失败的单元测试用例。 -test.run pattern: 只跑哪些单元测试用例 -test.bench patten: 只跑那些性能测试用例 -test.benchmem : 是否在性能测试的时候输出内存情况 -test.benchtime t : 性能测试运行的时间,默认是1s -test.cpuprofile

智能指针实例

佐手、 提交于 2020-03-19 12:58:25
摘要: 智能指针:通过C++模板技术实现的一个类模拟指针的行为(如->、*) 1. 内存泄漏(臭名昭著的Bug) (1)动态申请堆空间,用完后不归还(堆空间越来越少,的那个程序长时间运行,就会导致总堆空间内存没有了) (2)C++语言中没有垃圾回收的机制 (3)指针无法控制所指堆空间的生命周期(指针是变量,有生命周期,即一个局部指针指向了堆空间之后,当该指针的生命周期结束后,这段堆空间的生命周期并没有结束,这就发生了泄漏) 2. 当代C++软件平台中的智能指针 (1)指针生命周期结束时主动释放堆空间 (2)一片堆空间最多只能由一个指针标识(一片堆空间最多只能由一个指针 可以避免多次释放对空间的问题,因为如果有两个指针同时指向同一块内存空间,内存空间有可能会被释放两次造成内存错误) (3)杜绝指针运算和指针比较 3.智能指针的设计方案 (1)通过类模板描述指针的行为,能够定义不同类型的指针对象 (2)重载指针特征操作符(->和 *),利用对象模拟原生指针的行为 (3)智能指针的使用军规:只能用来指向堆空间中的单个对象(即不能指定一个数组对象的空间)或者变量 【编程实验】智能指针 Smartpointer.h #ifndef SMARTPOINTER_H #define SMARTPOINTER_H namespace DTLib { template < typename T >

Nginx 单元测试自动化浅析之一-Test::Nginx源码分析和使用

北战南征 提交于 2020-03-19 12:53:32
3 月,跳不动了?>>> http://www.taobaotest.com/blogs/2433 主题 Nginx 源码分析 单元测试 Nginx 单元测试自动化浅析之一 -Test::Nginx 源码分析和使用 Test::Nginx 是用来进行 Nginx 测试的一个 perl 语言的框架。该框架提供动态编写、更改 nginx 配置文件的功能,提供 Nginx 服务器启动关闭的功能以及提供 http 请求等功能。接下来通过分析源码来介绍该测试框架的使用。 源码分析 接下来介绍 Test::Nginx 测试框架中常用的功能的实现,主要包括构造函数, Nginx 配置文件的加载,服务器的启动,服务的获取,以及服务器的关闭的实现。 构造函数: 使用 Test::Nginx 模块应该先调用其构造函数,在 perl 中的构造函数是调用的是 new() 方法。构造函数完成了测试需要的临时文件夹的建立,构造函数源码如下: 其中 $self->{_testdir} 实例化 hash 变量,并在 /tmp/ 文件夹下创建名为 nginx-test-XXXXXXXXXX 的文件夹, XXXXXXXXXX 表示这些位的文件夹名称为随机生成。理论每次实例化对象时创建的文件夹名称都不一样。 通过在测试用例中用 Test::Nginx->new() 来获取 Test::Nginx 的实例。 Nginx

Hibernate各种查询操作(一)

十年热恋 提交于 2020-03-19 05:52:32
测试数据库如下 t_sort表: t_good表: 一、对象导航方式查询   查询所有食品类下面的食品   代码:    //对象导航查询 @Test public void Test1(){ SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try { sessionFactory = HibernateUtils.getFactory(); session = sessionFactory.openSession(); tx = session.beginTransaction(); //1、使用get方法查询出食品类 Sort food = session.get(Sort.class, 1); //2、使用sort对象的方法得到所有食品类中的食品 Set<Good> set = food.getSetGoods(); //3、遍历set集合 for (Good good : set) { System.out.println(good); } tx.commit(); } catch (Exception e) { tx.rollback(); }finally{ session.close(); sessionFactory.close(); } }  

MySQL NULL 值如何处理?

纵饮孤独 提交于 2020-03-19 02:54:28
我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 NULL,此运算符返回 true。 IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。 <=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。 关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。 在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。 MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。 在命令提示符中使用 NULL 值 以下实例中假设数据库 aliyun 中的表aliyun_test_tbl 含有两列aliyun_author 和 aliyun_count, aliyun_count 中设置插入NULL值。 实例 尝试以下实例: 创建数据表 runoob_test_tbl root@host# mysql -u root -p password;Enter password:**

easyexcel测试用例

℡╲_俬逩灬. 提交于 2020-03-18 19:09:27
package com.alibaba.easyexcel.test.demo.write; import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.excel.annotation.format.NumberFormat; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.util.FileUtils; import com.alibaba.excel

mysql事务隔离级别测试

你。 提交于 2020-03-18 18:50:13
隔离性 mysql提供了4种不同的隔离级别以支持多版本并发控制(MVCC) 较低级别的隔离通常可以执行更高的并发,系统的开销也更低 read uncommited(未提交读) read commited(提交读) repeatable read(可重复读) serializable(可串行化) 默认repeatable-read 建议最好不要修改默认的隔离级别,修改隔离级别会对mysql复制产生影响 isolation-table.sql DROP TABLE IF EXISTS transaction_test; CREATE TABLE transaction_test( id INT UNSIGNED NOT NULL AUTO_INCREMENT, val VARCHAR(20) NOT NULL, created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET latin1; #初始化数据 insert into transaction_test(val) values ('a'),('b'),('c'); 1.REPEATABLE-READ(可重复读) 解决了脏读问题.该级别保证了在同一事物中多次读取同样的记录结果是一样的

mysql8使用自带全文索引(带中文分词)

回眸只為那壹抹淺笑 提交于 2020-03-18 18:00:18
修改配置文件: vim /etc/my.cnf [mysqld] ngram_token_size=2 创建表: create table test( id int(11) not null primary key auto_increment, name varchar(100) not null comment '工商名', brand varchar(100) default null comment '品牌名', en varchar(100) default null comment '英文名', fulltext key (name,brand,en) with parser ngram )engine=innodb default charset=utf8; insert into test (name,brand,en) values ('芜湖美的厨卫电气制造有限公司','aa','wh'); insert into test (name,brand,en) values ('北京凡客尚品电子商务有限公司','aa','ef'); insert into test (name,brand,en) values ('凡客诚品(北京)科技有限公司','aa','dfd'); insert into test (name,brand,en) values ('瞬联讯通科技