test

Python 天天美味(37) - 让python的unittest像gtest一样输出

落爺英雄遲暮 提交于 2020-04-04 12:21:18
Python自带的unittest已经很简单易用了,不过我一直不喜欢的是它的命令行输出,格式显得有点乱。而我比较喜欢的是gtest的命令行输出格式,用不同的颜色进行标识,整齐划一,非常明了。于是,我扩展一下Python的unittest模块,让它也能输出和gtest一样好看的命令行结果。 首先,我们先来看看unittest默认的命令行输出结果。这里,我先随便写两个测试案例,让其中一个通过,另外一个不通过,然后查看一下测试结果。 import unitest class FooTest(unittest.TestCase): def setUp(self): self.a = 1 def testPass(self): self.a = self.a + 1 self.assertEqual( 2 , self.a) def testFail(self): self.a = self.a + 1 self.assertEqual( 3 , self.a) main函数,调用unittest自己的TextTestRunner: if __name__ == ' __main__ ' : unittest.main() 输出的结果: 有点凌乱(当然,可能你并不觉得),好的,接下来开始实现一个自定义的TestRunner,让unittest输出和gtest一样,使用不同的颜色。

Mqtt 客户端多主题订阅

家住魔仙堡 提交于 2020-04-04 11:43:03
前言: mqtt 的主题一个 层级 的概念. 我们订阅多个主题就需要用到这个技术点 功能是在主题中引入层次。层次又分主题层级分隔符,多层通配符和单层通配符 需要注意的一点是: 这些层级不能用在发布消息的 Publish 接口中 层级分类 主题层级分隔符: / 多层通配符: # 单层通配符: + 主题层级分隔符 "/" 被用来分割主题树的每一层,并给主题空间提供分等级的结构。当两个通配符在一个主题中出现的时候,主题层次分隔符的使用是很重要的。 // 主题Topic1: 分了三层 /test/child/aaa // 主题Topic2: 分了四层 /test/child/aaa2/bbb2 多层通配符 多层通配符"#"是一个匹配主题中任意层次数的通配符。我们用案例说明 案例1 订阅主题: /test/child/# 我们将收到这些主题发送来的消息: /test/child /test/child/aaa /test/child/ccc /test/child/aaa/bbb /test/child/aaa/bbb/ddd 多层通配符可以理解为大于等于0的层次。 多层通配符只可以确定当前层或者下一层 常见错误 和正确表示案例 # // Success, 会接收到不以 / 开头的所有主题 /# // Success /test/#/child // Error, #必须是最后一个字符

Git简明教程

僤鯓⒐⒋嵵緔 提交于 2020-04-04 10:35:55
git config git config 命令的作用是配置git的相关信息。 配置全局的用户名和邮箱,配置文件是用户目录下的.gitconfig文件。 设置用户名: git config --global user.name "name" 设置用户邮箱: git config --global user.email "eamil" 针对单个仓库配置用户名和邮箱,进入到项目的根目录中。 设置用户名: git config user.name "name" 设置用户邮箱: git config user.email "eamil" 查看git所有配置信息: git config --list 查看配置的用户名: git config user.name 查看配置的用户邮箱: git config user.email 定义命令别名: git config --global alias.st status :则 git status 可用 git st 代替 git config --global alias.co checkout :则 git checkout 可用 git co 代替 git config --global alias.ci commit :则 git commit 可用 git ci 代替 git config --global alias.br branch

01笔记

大城市里の小女人 提交于 2020-04-04 06:56:48
6. flat, stack(), 7. export_graphviz()8. Pipeline() 函数9. 画图10.正确率11.过拟合 12 np.vstack((y1, y2)) 将两组数据拼接到一个二元数组 1.导包 常用的包: import numpy as np from sklearn import svm from sklearn.model_selection import train_test_split import matplotlib as mpl import matplotlib.pyplot as plt 2.导入数据 path = '8.iris.data' data = np.loadtxt(path, dtype=float, delimiter=',', converters={4: iris_type})   # delimiter :分隔样本, converters 用于提供缺失数据的默认值 3.获取x,y的值 x, y = np.split(data, (4,), axis=1) # axis=1,则沿着 列方向取值,x取前4列,所有行;y取其余所有列, x = x[:, :2]     #2. 两列数据,即两个特征 注: x, y = np.split(data, (4,), axis=0) # axis=0,则沿着 行方向取值

linux profile of env

别来无恙 提交于 2020-04-04 05:36:05
Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。 常见的环境变量 对于PATH和HOME等环境变量大家都不陌生。 PATH能够指定命令的搜索路径,那么动态链接库的路径用什么变量指定呢?或者就是在PATH里面? 比如有一个程序需要/usr/local/lib下面的一个库文件,应该怎么指定其路径呢? 经常看到有些变量如LD_LIBRARY_PATH,LIBPATH,CLASSPATH等,他们之间有什么不同和关系? 除此之外,还有下面一些常见环境变量。 ◆ HISTSIZE是指保存历史命令记录的条数。 ◆ LOGNAME是指当前用户的登录名。 ◆ HOSTNAME是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。 ◆ SHELL是指当前用户用的是哪种Shell。 ◆ LANG/LANGUGE是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 ◆ MAIL是指当前用户的邮件存放目录。 ◆ PS1是基本提示符,对于root用户是#,对于普通用户是$。PS2是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My

转贴-程序运行总是提示 segmentation fault (core dumped)是什么错啊?

久未见 提交于 2020-04-04 01:18:21
程序运行总是提示 segmentation fault (core dumped)是什么错啊? 05/14/05 10:26 AM Edit Reply Quote duckybsd Site Admin http://linux.computersci.net/forum/showflat.php?Cat=&Board=UBB24&Number=3013&page=4&view=collapsed&sb=7&o = 是一些细节错误: 指针没有赋值, 变量赋值类型有错误。 错误类型并不难判断,不过地方是难找了些。 你可以在你的代码里加入一些测试点,比如在某一行插入: printf("XXXXXX\n"); 如果说在Segmetation Fault 前有你要打印的这些内容,那就是说错误在测试点后面。再继续查找。 segmantation fault :最主要的错误就是 声明了指针,但是没有初始化 ,结果再后来的时候进行间接引用 , 就出现问题了。 比如 char *p ; char test[] = "hello"; strcpy(p,test); 肯定会segmantation fault 了。 所以编程的时候,养成习惯: 比如 char *p = NULL; FILE *ftp = NULL ; 还有: char test_str[100]; memset(test_str,'

sed 命令详解

ぃ、小莉子 提交于 2020-04-03 22:14:55
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 sed的选项、命令、替换标记 命令格式 sed [options] 'command' file(s) sed [options] -f scriptfile file(s) 选项 -e<script>或--expression=<script>:以选项中的指定的script来处理输入的文本文件; -f<script文件>或--file=<script文件>:以选项中指定的script文件来处理输入的文本文件; -h或--help:显示帮助; -n或--quiet或——silent:仅显示script处理后的结果; -V或--version:显示版本信息。 参数 文件:指定待处理的文本文件列表。 sed命令 a\ 在当前行下面插入文本。 i\ 在当前行上面插入文本。 c\ 把选定的行改为新的文本。 d 删除,删除选择的行。 D 删除模板块的第一行。 s

Python变量类型和运算符(变量)

回眸只為那壹抹淺笑 提交于 2020-04-03 18:41:07
python 变量 Python 使用等号(=)作为赋值运算符, 注意,变量名其实就是标识符,因此在命名时,既要遵守标识符的命名规范,还要避免和 Python的内置函数重名。 强类型语言和弱类型语言 必须指定该变量所能存储的数据类型,以 C 语言为例: int a = 20 和强类型语言相对应的是弱类型语言,Python 就是典型代表之一。弱类型语言有以下 2 个特征: 变量无须声明即可直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。 python 数值类型 Python 中的数值类型主要包括整形、浮点型和复数类型。整形专门用来表示整数,即没有小数部分的数。在 Python 中,整数包括正整数、0 和负整数。 short、int、long 整形类型存储,除此之外,Python 的整型还支持 None 值(空值) [root@kube python]# py demo6.py <class 'int'> <class 'int'> <class 'int'> <class 'NoneType'> [root@kube python]# cat demo6.py a=1 b=222 c=4444444444444444444444444444444444444444444444444444

JDBC编程--SQL基础

早过忘川 提交于 2020-04-03 09:09:00
● 现在有一个学生表,一个课程成绩表,请问,怎么找出学生课程的最高分数,谈一谈思路 无答案 ● 现在,有一个组合索引(A,B,C),可以有哪几种查询方式? 考察点:sql语句 参考回答: 优: select * from test where a=10 and b>50 差: select * from test where b = 50 优: select * from test order by a 差: select * from test order by b 差: select * from test order by c 优: select * from test where a=10 order by a 优: select * from test where a=10 order by b 差: select * from test where a=10 order by c 优: select * from test where a>10 order by a 差: select * from test where a>10 order by b 差: select * from test where a>10 order by c 优: select * from test where a=10 and b=10 order by a 优: select *