Unittest基本使用

unittest

一、安装

pip install unittest

二、用法

1、简单的demo

import unittest
测试用例 - testcase
写法:建一个类
class 类名(unittest.Test):
	每条测试用例都会执行setUp,tearDown
	def setUp(self):
		#初始化 --- 开始
	def tearDown(self):
		结束测试工作
		
	#测试用例用test命名
	def test01(self):
		#测试用例-1
	def test02(self):
		#测试用例-2
#启动
if __name__ = '__main__':
	#直接运行
	unittest.main()	

2、套件

测试套件:
1)、把多个测试用例集合到一起
2)、测试套件也可以有多个,可组合到一起形成更多的测试用例集合

通过addTest()的方法
定义套件:unittest.TestSuite()
suite = unittest.TestSuite()
#第一种方法:addTest(),将类中的测试用例添加到测试套件中,一个一个加
suite = addTest(类名(测试用例1))
suite = addTest(类名(测试用例2))
#批量执行
#tests = [类名(测试用例),类名(测试用例2),类名(测试用例3))]
#suite.addTests(tests)

#执行测试
runner = unittest.TextTestRunner()
runner.run(suite)
#第二种方法:makeSuite(),搜索指定ClassName内test开头的方法并添加到测试套件中
suite.addTest(unittest.makeSuite(ClassName)) 
通过TestLoader()方法组织TestSuite
说明:
	用来加载TestCase到TestSuite中,即加载满足条件的测试用例,并把测试用例封装成测试套件。 
	使用unittest.TestLoader,通过该类下面的discover()方法自动搜索指定目录下指定开头的.py文件 , 
	
	并将查找到的测试用例组装到测试套件; 

用法:
	suite = unittest.TestLoader().discover(test_dir, pattern='test*.py') 
		自动搜索指定目录下指定开头的.py文件,并将查找到的测试用例组装到测试套件 
		test_dir: 为指定的测试用例的目录 
		pattern:为查找的.py文件的格式,默认为'test*.py' 

	也可以使用unittest.defaultTestLoader 代替 unittest.TestLoader() 

运行:
	runner = unittest.TextTestRunner() 
	runner.run(suite)
案例
import unittest
#调用方法
suite = unittest.TestLoader().discover('../case')
#扩展 指定test开头的模块
suit = unittest.TestLoader().discover('../case',pattern ='test*.py')
defaultTestLoader代替TestLoader
suite = unittest.defaultTestLoader.discover('../case',test*.py)

#执行 方法:TextTestRunner
unittest.TextTestRunner().run(suite)
TestLoader和TestSuite区别
1. TestSuite需要手动添加测试用例(可以添加测试类,也可以添加测试类中某个测试方法) 
2. TestLoader搜索指定目录下指定开头.py文件,并添加测试类中的所有的测试方法,不能指定添加测试方法;

基本使用

三、断言

#unitteat中断言的复杂使用:assert

import requests
import unittest
data = {
	'username':'11111',
	'passwoord':'222222'
}

#1、定义一个类,继承unittest.TestCase
class MyTestCase_02(unittest.TestCase):
	#3、初始化-前置条件
	def setUp(self):
		print('case开始执行')
	#3、结束  每一个case执行,都会执行setUp和tearDown
	def tearDown(self):
		print('case结束执行')

	#4、引入静态类,执行case只执行一次
	#加入类方法
	@classmethod
	def setUpClass(cls):
		print('case类开始执行')
	@classmethod
	def tearDownClass(cls):
		print('case类执行结束')

	#2、执行case
	def test_01(self):
		print("case01")
		data1={
			'username':'11111111'
		}
		#断言:assert;
		#assertDictEqual:判断对象是否相等
		self.assertDictEqual(data1,data,msg='不相等')

	def test_02(self):
		print("case02")
		data1 = {
			'username': '11111',
			'passwoord': '222222'
		}
		self.assertDictEqual(data1, data, msg='相等')

	def test_03(self):
		print("case03")
		flag = True
		#断言判断是否为False
		self.assertFalse(flag,msg='不为true')

	def test_04(self):
		print("case03")
		flag = '11111'
		flag1 = '22222'
		#断言判断字符串是否相等
		self.assertEqual(flag, flag1,msg='不相等')

	def test_05(self):
		print("case03")
		flag = 'abcjgkjorogrogporiog'
		flag1 = 'piouyytytyt'
		#断言判断flag1是否在flag中
		self.assertIn(flag1, flag, msg='不包含')

#运行:unittest.main()
if __name__ == '__main__':
	unittest.main()


	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值