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 -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 -unittest discover -s dest_Dir -"*.py"——编译目标dir目录下继承unittest模块的所有py文件,其中-s 后接对应文件夹,-p 后接匹配模式。

如果想让执行结果更为明显,可以加上 -v;若想获取其他参数的用法,可以加上 -h。

Python unittest第一篇:基础入门+命令行编译的更多相关文章

  1. 【Python Learning第一篇】Linux命令学习及Vim命令的使用

    学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*) 此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多多包涵 以下是我上课做的一些笔记,非常的 ...

  2. python第四篇:linux命令行总结 + 自动备份Python程序

    由于最近需要学习Python爬虫相关的知识,所以就先从Python基础.Linux基础开始进行了学习,下面主要是总结了常见的Linux的命令行.最后为了巩固学到的东西,尝试写了个自动备份的Python ...

  3. [Python笔记]第一篇:基础知识

    本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...

  4. Python人工智能第一篇:语音合成和语音识别

    Python人工智能第一篇:语音合成和语音识别 ​ 此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径.目前市面上主流的AI技术提供公司有很多,比如百度, ...

  5. Linux 究级基础入门命令整理

    Linux 究级基础入门命令整理 条条框框,三三两两,怎讷个这么多,哈哈!no zuo no die. 纯粹个人菜鸟笔记,望大神笑纳! 后续,未完!! 查看系统信息 uname -a - 查看内核/操 ...

  6. 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器

    × 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...

  7. [译]PrestaShop开发者指南 第一篇 基础

    # 第一篇 基础 PS(PrestaShop简称)一开始就设定了能够在它的基础上很简单的构建第三方模块的机制,让它成为一款具有极高定制性的电子商务软件. PS的可以在三个方面进行定制: * 主题 * ...

  8. 【linux基础】使用命令行编译运行c++程序

    前言 在linux系统运行程序,小鹅知道的有3种编译方式,一种是直接命令行编译,一种是使用Cmake,一种是使用脚本文件(*.sh).本文介绍的是使用命令行编译. 使用过程 注意不同系统的编译器版本可 ...

  9. 2016/01/10 C++ Primer 小记 —— 命令行编译环境配置

    OK!第一篇博文!自贺一下! 今日看了此书的前几页.嗯,说得挺全,基础易懂. 之前学过c++,但没用过命令行编译. 本人用的VS里的编译器,文件名是cl.exe,在VC目录下. 虽然有了编译器,但并不 ...

随机推荐

  1. Display PDF in browser | Acrobat, Reader XI

    点这个链接查看详细的解决办法 http://helpx.adobe.com/acrobat/using/display-pdf-browser-acrobat-xi.html When you cli ...

  2. c# 调用外包程序 等待处理完成结果

    string root = @"J:\yaoqianshu"; string pythonPath = "解压缩拷贝启动动画测试(新).py"; string ...

  3. ACTIVIT 5.15.1修改记录

    1.ProcessDefinitionEntity 将 protected transient ActivitiEventSupport eventSupport; 修改成: protected  A ...

  4. UVa 10829 L-Gap Substrings (后缀数组+rmq)

    题意:给定上一个串,问你多少种UVU这一种形式的串,其中U不为空并且V的长度给定了. 析:枚举 U 的长度L,那么U一定是经过 0 L 2L 3L .... 其中的一个,所以求两个长度反lcp,一个向 ...

  5. HDU 1286 找新朋友 (欧拉phi函数打表)

    题意:你懂得. 析:一看这个题应该是欧拉phi函数,也就说欧拉phi函数是指求从 1 到 n 中与 n 互素的数的个数,这个题很明显是这个意思嘛,不多说了. 代码如下: #include <io ...

  6. windows下 git+tortoiseGit的使用【转】

    一定要自己写出来才能牢记,所以我来写一下 git确实比svn好用的多了,最起码只有一个文件夹用来标记版本信息比svn所有文件夹下都要放一个文件夹来标记版本信息先进多了,不然你不想要版本管理这些文件的时 ...

  7. sockaddr与sockaddr_in

    struct sockaddr { unsigned short sa_family;     char sa_data[14]; }; 此数据结构用做bind.connect.recvfrom.se ...

  8. linux inode cheat sheet

    sector:扇区,硬盘存储的最小单位,大小为0.5KB(512字节) block:块文件存取的最小单位,1 block=8 sector,大小4KB inode:存储文件元信息.内容包括 * 文件的 ...

  9. 微服务编译、启动jar命令指定配置文件

    nohup java -Xms512m -Xmx8g -Xmn512m -Xss512k -server -XX:+HeapDumpOnOutOfMemoryError -jar smp-bill-c ...

  10. 深入理解js立即执行函数

    看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数.立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们 ...