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. [Tools]SurveyMonkey

    做问卷调查,推荐一个好工具,免费的 SurveyMonkey : it's free, quick & easy! https://www.surveymonkey.com/

  2. HDU 2044 一只小蜜蜂...(递推,Fibonacci)

    题意:中文题. 析:首先要想到达第 n 个蜂房,那么必须经 第 n-1 或第 n-2 个蜂房,那么从第 n-1 或第 n-2 个蜂房到达第 n 个,都各自有一条路线, 所以答案就是第 n-1 + 第 ...

  3. 使用 John the Ripper 破解 Windows 密码

    cd /target/windows/system32/config 使用 SamDump2 来提取哈希,并将文件放到你的 root 用户目录中的一个叫做 hashes 的 文件夹中. samdump ...

  4. .NET基础 (08)字符串处理

    字符串处理1 System.String是值类型还是引用类型2 StringBuilder类型有何作用3 如何在String和Byte[]对象之间进行转换4 简述BASE64编码的作用以及C#中对其的 ...

  5. 还原bak到localdb的问题:The logical database file cannot be found ldf

    主要环境相关因素:win7,ms sql 2012,ms localdb,msms 2012. 步骤: 1,让DBA给一个bak文件到本地来做测试,DBA按自己的工作流程得到bak文件. 2,在msm ...

  6. 3、Docker能干什么?

    简化配置   这是Docker公司宣传的Docker的主要使用场景.虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件.系统),Docker在降低额外开销的情况下提供了同样的功能.它能 ...

  7. Android-自定义控件之绘图基础

    画圆形,效果图: 布局中去指定自定义View: <view.custom.androidcustomviewbook.a_draw_base.BaseView android:layout_wi ...

  8. 20145233计算机病毒实践九之IDA的使用

    20145233计算机病毒实践之IDA的使用 PSLIST导出函数做了什么 这个函数是一个export函数,所以在view中选择export 查到后,双击打开这个函数的位置 仔细看这个函数可以发现这个 ...

  9. 采购文件中 RFI、RFQ、RFP、IFB的区别

    [PMBOK的描述] 采购文件用于征求潜在卖方的建议书.如果主要依据价格来选择卖方(如购买商业或标准产品时),通常就使用标书.投标或报价等术语.如果主要依据其他考虑(如技术能力或技术方法)来选择卖方, ...

  10. gearman服务连接php java

    在实际工作中,会碰到两个问题 (1)现有系统想集成一个开发组件,而该组件的SDK却没有现有语言版本. (2)系统中的一项功能非常耗费资源,最好能利用其它机器来处理. 本文介绍gearman的使用,实现 ...