import unittest,HTMLTestRunner
class My(unittest.TestCase):
def test_a(self):
"""这是用例备注:第一条用例"""
self.assertEqual(1,1) #对比两个值是否相等
def test_b(self):
"""第一条用例"""
self.assertEqual(1,2)
if __name__ == '__main__':
suite=unittest.TestSuite()
# suite.addTest(unittest.makeSuite(My)) #运行类下所有的用例
suite.addTest(My('test_a')) #单独运行某一个用例
fw=open('1.html','wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='h',description='描述')
runner.run(suite)
2.setUp,tearDown ,setUpclass ,tearDownclass
import unittest
class My(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('进入对象先运行我')
@classmethod
def tearDownClass(cls):
print('所有用例运行完,再走我')
def setUp(self):
print('每条用例运行前先运行我')
def tearDown(self):
print('每条用例运行后都走一边我')
def test_a(self):
self.assertEqual(1,1)
if __name__ == '__main__':
unittest.main()
3.运行多个文件内的用例
当前我在run文件下要运行case文件夹下a和b文件里的用例
import unittest,HTMLTestRunner
suite=unittest.TestSuite() #产生一个空的测试集
all_case=unittest.defaultTestLoader.discover(r'D:\学习\Python\gitfile\uintest小例\case','*py') #寻找这个路径下以py结尾的文件
for case in all_case:
suite.addTests(case) # 给测试集中放用例
f=open('1.html','wb') #产生放在那个路径下及报个名称
runner=HTMLTestRunner.HTMLTestRunner(stream=f,title='123')
runner.run(suite)#运行测试集中的用例并产生报告
4,参数化
import unittest,HTMLTestRunner
from nose_parameterized import parameterized
def login(username,passwd):
if username=='daliuliu' and passwd=='123456':
return True
return False
class Login(unittest.TestCase):
#必须传二维数组,list,元组都可以
@parameterized.expand([
['daliuliu','123456',True],
('daliuliu','',False),
['','',False]
])
def test_login(self,username,passwd,hope):
res=login(username,passwd)
self.assertEqual(res,hope)
if __name__ == '__main__':
suite=unittest.TestSuite()
suite.addTest(unittest.makeSuite(Login))
f=open('hh1.html','wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=f)
runner.run(suite)
5.关联传参
import unittest,HTMLTestRunner
def login(username,passwd):
if username=='daliuliu' and passwd=='123456':
return '138'
return False
def get_sign(sign):
if sign=='138':
return False
return True
class Login(unittest.TestCase):
def login(self):
sign= login('daliuliu','123456')
self.assertEqual(sign,'138')
def test_a(self):
sign=self.login()
res=get_sign(sign)
self.assertEqual(res,True)
if __name__ == '__main__':
suite=unittest.TestSuite()
suite.addTest(unittest.makeSuite(Login))
f=open('hh1.html','wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=f)
runner.run(suite)