为啥要用unittest ????????????????????
def add(a,b):
return a+b
result=add(1,1)
if result==2:
print('通过')
else:
print('不通过')
前期开发都是这样判断用例的成功和失败,也就是断言为了使用方便,使用了unitest 我们用单元测试功能完成自动化
为了方便这样优化
import unittest
def add(a, b):
return a + b
class AddTest(unittest.TestCase):#定义一个类继承方法
@classmethod
def setUpClass(cls):#每条用例执行前都会执行它
print('setup')
@classmethod
def tearDownClass(cls):#每条用例执行后都会执行它
print('teardown')
def test_normal(self):
result=add(1,1)
self.assertEqual(2,result)
def test_error(self):
result=add(1,1)
self.assertEqual(1,result,'结果计算错误')
self.assertIn(1,[1,2,3,4])
self.assertNotIn()
self.assertNotEquals(1,1)
self.assertFalse()
self.assertTrue()
#不需要实例化
# unittest.main()#会自动帮你运行
记住运行时候 run... 选择python文件会自动产生报告
用例运行顺序按字母运行 ????????
跑单个用例???
import unittest
from jiekou import HTMLTestRunner
def add(a, b):
return a + b
class AddTest(unittest.TestCase):#定义一个类继承方法
@classmethod
def setUpClass(cls):#每条用例执行前都会执行它
print('setup')
@classmethod
def tearDownClass(cls):#每条用例执行后都会执行它
print('teardown')
def test_normal(self):
result=add(1,1)
self.assertEqual(2,result)#校验两个值想不想等
def test_error(self):
result=add(1,1)
self.assertEqual(1,result,'结果计算错误')
self.assertIn(1,[1,2,3,4])
self.assertNotIn()
self.assertNotEquals(1,1)
self.assertFalse()
self.assertTrue()
#不需要实例化
if __name__ == '__main__':
test_suite=unittest.TestSuite()
test_suite.addTest(AddTest('test_error'))#加用例单个用例方法
test_suite.addTest(AddTest('test_normal'))
with open('report.html','wb') as fw:
runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='接口测试报告',description=
'第一次接口测试报告',verbosity=2
)
runner.run(test_suite)
跑一个类下面所有的用例????????????
import unittest
from jiekou import HTMLTestRunner
def add(a, b):
return a + b
class AddTest(unittest.TestCase):#定义一个类继承方法
@classmethod
def setUpClass(cls):#每条用例执行前都会执行它
print('setup')
@classmethod
def tearDownClass(cls):#每条用例执行后都会执行它
print('teardown')
def test_normal(self):
result=add(1,1)
self.assertEqual(2,result)#校验两个值想不想等
def test_error(self):
result=add(1,1)
self.assertEqual(1,result,'结果计算错误')
self.assertIn(1,[1,2,3,4])
self.assertNotIn()
self.assertNotEquals(1,1)
self.assertFalse()
self.assertTrue()
#不需要实例化
if __name__ == '__main__':
test_suite=unittest.makeSuite(AddTest)
with open('report.html','wb') as fw:
runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='接口测试报告',description=
'第一次接口测试报告',verbosity=2
)
runner.run(test_suite)
自己调试不产生报告直接运行
unittest.main()#会自动帮你运行
还有一个好看的模板?????????
import unittest
from jiekou import HTMLTestRunner_PY3
def add(a, b):
return a + b
class AddTest(unittest.TestCase):#定义一个类继承方法
@classmethod
def setUpClass(cls):#每条用例执行前都会执行它
print('setup')
@classmethod
def tearDownClass(cls):#每条用例执行后都会执行它
print('teardown')
def test_normal(self):
result=add(1,1)
self.assertEqual(2,result)#校验两个值想不想等
def test_error(self):
result=add(1,1)
self.assertEqual(1,result,'结果计算错误')
self.assertIn(1,[1,2,3,4])
self.assertNotIn()
self.assertNotEquals(1,1)
self.assertFalse()
self.assertTrue()
#不需要实例化
if __name__ == '__main__':
test_suite=unittest.makeSuite(AddTest)
with open('report.html','wb') as fw:
runner=HTMLTestRunner_PY3.HTMLTestRunner(stream=fw,title='接口测试报告',description=
'第一次接口测试报告',verbosity=2
)
runner.run(test_suite)
# unittest.main()#会自动帮