Python unittest第一篇:基础入门+命令行编译
unittest单元测试框架最初受JUnit启发,与其他语言的主要单元测试框架具有相似的风格。 它支持测试自动化,支持开启或关闭某个测试,支持结合测试。另外它可以生成各个单元测试的报告。为了实现以上功能,unitTest提供了四大功能:
测试夹具(test fixture)
测试夹具起自动初始化、回收资源作用。以类为对象的话,在python里对应的方法分别是test_isupper、test_upper,前者可以起初始化作用,后者可以起回收资源作用。
测试用例(test case)
测试用例是单独的测试单元。unittest提供了一个基类TestCase,可用于创建新的测试用例。
测试套件(test suite)
测试套件用于将一个个的测试用例结合起来。
测试运行器(test runner)
测试运行器会提供给用户测试的结果,可以以图形界面、文本界面等形式返回。
例子解析
总体上unittest提供了一组丰富的工具,供给用户构建与测试。本小节用一个简单的例子和大家演示一下,首先代码如下:
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
print("test_upper")
def test_isupper(self):
print("test_isupper")
def test_split(self):
print("test_split")
if __name__ == '__main__':
unittest.main()
1:首先我们执行下代码,可以看到如图:

2: 该类继承unittest.TestCase类,可以看出,里面有三个function,分别为test_upper、test_isupper、test_split,其中的test_isupper相当于类的构造操作,test_upper相当于类的析构操作,而默认的test_xxx后的函数则是单元测试对应的函数,默认会按照代码的顺序依次执行.
3:我们添加一个函数test_split1,代码如图:
def test_split(self):
print("test_split") def test_split1(self):
print("test_split1")
运行结果如图:

4:讲好基础的,我们讲关于命令行编译运行的内容,首先我们拷贝test1.py并生成test2.py。若想要同时编译运行test1.py与test2.py,又或者我们想编译运行整个文件夹的unittest模块代码,再或者我们只想编译运行某个py文件下的某个function,这该怎么办呢?详细请看下方。
①:python -m unittest test1 test2——这里指的是按顺序执行test1.py test2.py文件中的unittest模块。
②:python -m test1.TestStringMethods——这里指的是执行test1.py文件中名为TestStringMethods的unittest类。
③:python -m unittest test1.TestStringMethods.test_split——这里指的是只执行test1.py文件中名为TestStringMethods的unittest类的test_split函数。
④:python -m unittest——这里指的是编译该层目录下继承unittest模块的所有py文件。
⑤:python -m unittest discover——等同于python -m Unittest,后还要接参数时要加discover。
⑥:python -m unittest discover -s dest_Dir -p "*.py"——编译目标dir目录下继承unittest模块的所有py文件,其中-s 后接对应文件夹,-p 后接匹配模式。
如果想让执行结果更为明显,可以加上 -v;若想获取其他参数的用法,可以加上 -h。
Python unittest第一篇:基础入门+命令行编译的更多相关文章
- 【Python Learning第一篇】Linux命令学习及Vim命令的使用
学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*) 此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多多包涵 以下是我上课做的一些笔记,非常的 ...
- python第四篇:linux命令行总结 + 自动备份Python程序
由于最近需要学习Python爬虫相关的知识,所以就先从Python基础.Linux基础开始进行了学习,下面主要是总结了常见的Linux的命令行.最后为了巩固学到的东西,尝试写了个自动备份的Python ...
- [Python笔记]第一篇:基础知识
本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...
- Python人工智能第一篇:语音合成和语音识别
Python人工智能第一篇:语音合成和语音识别 此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径.目前市面上主流的AI技术提供公司有很多,比如百度, ...
- Linux 究级基础入门命令整理
Linux 究级基础入门命令整理 条条框框,三三两两,怎讷个这么多,哈哈!no zuo no die. 纯粹个人菜鸟笔记,望大神笑纳! 后续,未完!! 查看系统信息 uname -a - 查看内核/操 ...
- 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器
× 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...
- [译]PrestaShop开发者指南 第一篇 基础
# 第一篇 基础 PS(PrestaShop简称)一开始就设定了能够在它的基础上很简单的构建第三方模块的机制,让它成为一款具有极高定制性的电子商务软件. PS的可以在三个方面进行定制: * 主题 * ...
- 【linux基础】使用命令行编译运行c++程序
前言 在linux系统运行程序,小鹅知道的有3种编译方式,一种是直接命令行编译,一种是使用Cmake,一种是使用脚本文件(*.sh).本文介绍的是使用命令行编译. 使用过程 注意不同系统的编译器版本可 ...
- 2016/01/10 C++ Primer 小记 —— 命令行编译环境配置
OK!第一篇博文!自贺一下! 今日看了此书的前几页.嗯,说得挺全,基础易懂. 之前学过c++,但没用过命令行编译. 本人用的VS里的编译器,文件名是cl.exe,在VC目录下. 虽然有了编译器,但并不 ...
随机推荐
- Luogu 4512 【模板】多项式除法
高级操作,感觉非常神仙. 题目中的字母太难懂了,重新定义一下. $$A(x) = B(x) * C(x) + D(x)$$ 其中,$A(x)$的次数是$n$,$B(x)$的次数是$m$,$A, B$都 ...
- sqlserver怎么将excel表的数据导入到数据库中
在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据. ...
- mvc api odata查询选项之 $inlinecount $format 选项(转)
出处:http://www.it165.net/pro/html/201505/40236.html 网上百度“odata 语法”会出来很多结果,其中有一项是比较一致的,那就是odata支持一下几种语 ...
- 【转】WIFI基本知识整理
WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习.因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种 ...
- 用OLEDB读取EXCEL时,单元格内容长度超过255被截断
https://support.microsoft.com/zh-cn/help/189897/data-truncated-to-255-characters-with-excel-odbc-dri ...
- CodeForces 681B Economy Game (暴力)
题意:给定一个数,问能不能 找到非负 a, b, c,使得 a × 1 234 567 + b × 123 456 + c × 1 234 = n. 析:二重循环,去确定c. 代码如下: #inclu ...
- Shell 常用命令总结
Shell常用命令总结 1 ls命令:列出文件 ls -la 列出当前目录下的所有文件和文件夹 ls a* 列出当前目录下所有以a字母开头的文件 ls -l *.txt 列出当前目录下所有后缀名 ...
- 《官方资料》 例如:string 函数 、分组函数
site:www.mysql.com SUBSTRING_INDEX ----------------------------------------------------------------- ...
- loadrunner - 问题汇总及解决方案(持续更新)
1.在此界面点击Run Load Tests提示: ”Can not save the license information because access to the registry is de ...
- mysql导入数据load data infile用法(转)
们常常导入数据!mysql有一个高效导入方法,那就是load data infile 下面来看案例说明 基本语法: load data [low_priority] [local] infile ' ...