python3+unittest单元测试框架

#unittest单元测试框架,主要由四部分组成:测试固件、测试用例、测试套件、测试执行器
#1、测试固件:
‘‘‘def setUp(self):  # 每条用例执行前都要执行,例如测试前的准备工作
    print(‘setup‘)

def tearDown(self):  # 每条用例执行后都要执行,例如测试执行完成后的清除配置工作
    print(‘tearDown‘)
‘‘‘
#例如:
 1 import unittest
 2
 3 def calc(a,b):
 4     return a+b
 5
 6 class CalcTest(unittest.TestCase):
 7     def setUp(self):#每条用例执行前都要执行
 8         print(‘setup‘)
 9
10     def tearDown(self):#每条用例执行后都要执行
11         print(‘tearDown‘)
12
13     def test_pass(self):
14         print(‘aaaa‘)
15         result = calc(1,2)
16         self.assertEqual(3,result)
17
18     def test_fail(self):
19         print(‘bbbb‘)
20         result = calc(1,0)
21         self.assertEqual(2,result,‘什么时候出msg‘)
22
23     def test_a(self):
24         print(‘cccc‘)
25 unittest.main()》执行结果:

setup
cccc
tearDown
setup
bbbb
tearDown
setup
aaaa
tearDown

‘‘‘
很多时候我们只想执行一次测试固件:比如setUp()中放着连接数据库操作,
多个test case放着不同数据库操作,然后tearDown()断开数据连接,
使用setUpClass()和tearDownClass()可以的得到这样的效果
@classmethod
    def setUpClass(cls):
        print(‘setupClass‘)

@classmethod
    def tearDownClass(cls):
        print(‘teardownClass‘)
‘‘‘
 1 import unittest
 2
 3 def calc(a,b):
 4     return a+b
 5
 6 class CalcTest(unittest.TestCase):
 7     @classmethod
 8     def setUpClass(cls):
 9         print(‘setupClass‘)
10
11     @classmethod
12     def tearDownClass(cls):
13         print(‘teardownClass‘)
14
15     def test_pass(self):
16         print(‘aaaa‘)
17         # result = calc(1,2)
18         # self.assertEqual(3,result)
19
20     def test_fail(self):
21         print(‘bbbb‘)
22         # result = calc(1,0)
23         # self.assertEqual(2,result,‘什么时候出msg‘)
24
25     def test_a(self):
26         print(‘cccc‘)
27 unittest.main()

执行结果:

setupClass
cccc
bbbb
aaaa
teardownClass

1 #测试用例
2 #测试用例中,包含测试固件,测试固件可以不写,但是至少要有一个以test开头的函数。
3 #unittest会自动识别test开头的函数是测试代码,一定要用小写的test开头!
4 #测试用例执行顺序是以test后面的字母顺序执行的。例如下面的例子执行顺序是test_a,test_fail,test_pas
#测试执行器
test runner用来执行加载的测试用例,可以是单个测试用例,也可以是测试套件
一种就是上方实例中的直接使用unittest.main()去执行,会搜索所有以test开头的测试用例,按照ASCII的顺序执行多个用例
另一种就是使用TextTestRunner()方法初始化一个测试执行器,然后使用run()去执行测试套件


1 suite = unittest.TestSuite(unittest.makeSuite(CalcTest))
2 runner = unittest.TextTestRunner()
3 runner.run(suite)
4 这里suite是指测试套件的实例使用makeSuite()可以把一个类下面所有测试方法都加载到测试套件中

#测试套件
很多测试用例的集合就是测试套件,通过测试套件来管理多个测试用例,会根据用例的加载顺序执行用例
使用TestSuite()初始化一个Suite实例
使用addTest()方法加载测试方法到测试套件中,addTest()如果要在传入别的包下的测试方法:  包名.类名(测试方法函数)
1 suite = unittest.TestSuite()
2 suite.addTest(CalcTest(‘test_fail‘))
3 suite.addTest(CalcTest(‘test_a‘))
4 runner = unittest.TextTestRunner()
5 runner.run(suite)
1 将以上代码替换unittest.main(),也可以执行

原文地址:https://www.cnblogs.com/hujc/p/11273361.html

时间: 2024-10-10 01:52:49

python3+unittest单元测试框架的相关文章

Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去掉验证码 1.手动在请求中添加cookies信息 1 url = "http://www.baidu.com" 2 driver = webdriver.Firefox() 3 driver.get(url) 4 time.sleep(3) 5 #添加cookies的方式 6 7 c1 =

Python+Selenium ----unittest单元测试框架

unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做"PyUnit",是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Python里的一个单元测试框架就可以了.       unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是test,也就是一个测试用例.要了解

Python基础入门-unittest单元测试框架

unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试. 目录 一.unittest模块的各个属性说明 二.使用unittest框架编写测试用例思路 三.使用unittest框架编写测试用例实例 一.unittest模块的各个属性说明 先来聊一聊unittest模块的各个属性,所谓知己知

unittest单元测试框架总结

unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试. 目录 一.unittest模块的各个属性说明 二.使用unittest框架编写测试用例思路 三.使用unittest框架编写测试用例实例 一.unittest模块的各个属性说明 点击返回目录 先来聊一聊unittest模块的各个属

15. Unittest单元测试框架的介绍与使用

?什么是单元测试 在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小可测试部件.在过程化编程中,一个单元就是单个程序.函数.过程等:对于面向对象编程,最小单元就是方法,包括基类(超类).抽象类.或者派生类(子类)中的方法. 上面这段内容摘自维基百科.笔者在入职的时候,一直搞不明白什么是单元测试.即使搜了很多资料,也还是搞不明白.一直到接触代码的时候,才对单元测试有了一个大概的认识.当然以

unittest单元测试框架小白入门

unittest单元测试框架: 一般也称为pyunit,是从java程序中广泛应用的junit启发而来的,unittest使我们具备创建测试用例,测试套件,测试·夹具的能力.unittest组件:1):Test fixture(测试夹具): 使用测试夹具,可以定义在单个或多个测试执行之前的准备工作和执行之后的清理工作.2)Test Case(测试用例):unittest中执行测试的最小单元,通过验证unittest提供的assert方法来验证一组特定的操作和输入以后得到的响应,unittest提

第 6 章 unittest 单元测试框架 - Selenium3 自动化测试

第 6 章 unittest 单元测试框架 单元测试是一项对技术要求很高的工作,只有白盒测试人员和软件开发人员才能胜任但用单元测试框架做单元测试却十分简单,而且单元测试框架不仅可以用来做单元测试,它还适用于不同类型的「自动化」测试. 1.提供测试用例组织和执行在 Python 中,我们编写的代码可以定义类.方法和函数,那么如何定义一条「测试用例」?如何灵活地控制这些「测试用例」的执行?单元测试框架会告诉我们. 2.提供丰富的断言方法当我们进行功能测试时,测试用例需要有预期结果.当测试用例的执行结

基于appium实现的线性代码引用unittest单元测试框架

在前段时间,分享了几篇关于appium基础的博文,再加上期间也有讲到unittest测试框架,所以今天就来一个专题,在appium+python实现的线性代码基础上,引入unittest框架,使代码更简洁. 之前的博客,可以见以下链接快速阅读: 基于Python的Appium环境搭建合集 Genymotion模拟器的安装及脚本制作 Appium Python API 中文版 Appium-Server与Appium-Desktop的区别 单元测试框架Uinttest一文详解 在以上博文中,代码示

Selenium自动化测试-unittest单元测试框架使用

一.什么是unittest 这里我们将要用的unittest是python的单元测试框架,它的官网是 https://docs.python.org/2/library/unittest.html,在这里我们可以得到全面的信息. 当我们写的用例越来越多时,我们就需要考虑用例编写的规范与组织,以便于后期的维护,而unittest正是这样一款工具.我们这里用一个示例来展示用unittest脚本是什么样子的 1 # -*- coding: utf-8 -*- 2 from selenium impor