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)