2021-08-05学习unittest

unittest官网介绍
https://docs.python.org/3/library/unittest.html?highlight=unittest#unittest.TestResult.startTestRun

例子

import unittest

class TestStringMethods(unittest.TestCase):
# setup teardown每个方法都会使用一遍
def setUp(self) -> None:
print(“setup”)
def tearDown(self) -> None:
print(“teardown”)
# setupclass和teardownclass只在整个测试类里面开始和最后执行一次
@classmethod
def setUpClass(cls) -> None:
print(“setUpClass”)
@classmethod
def tearDownClass(cls) -> None:
print(“tearDownClass”)

def test_upper(self):
    self.assertEqual('foo'.upper(), 'FOO')

def test_isupper(self):
    self.assertTrue('FOO'.isupper())
    self.assertFalse('Foo'.isupper())

def test_split(self):
    s = 'hello world'
    self.assertEqual(s.split(), ['hello', 'world'])
    # check that s.split fails when the separator is not a string
    with self.assertRaises(TypeError):
        s.split(2)

if name == ‘main’:
unittest.main()

setupclass 和teardownclass只在类前后执行一次
setup和teardown在每个方法前后都会执行一遍

编写unittest测试用例:unittest会自动识别以test开头的函数,test要小写
执行测试用例的顺序:以test后面的字母顺序执行,例如test_a,test_b,test_c

unittest执行用例
一、使用unittest.main(),可以执行所有的用例
二、加入容器中执行
suite=unittest.TestSuite()
suite.addTest(TestMethod(“test_01”))
suite.addTest(TestMethod(“test_02”))
unittest.TextTestRunner().run(suite)

注意:TestMethod是写的类名,test_01是类名下面定义的方法名
三、将要测试的类放入测试套件,批量执行测试类
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestMethod1)
suite2 = unittest.TestLoader().loadTestsFromTestCase(TestMethod2)
suite = unittest.TestSuite([suite1,suite2])
unittest.TextTestRunner(verbosity=2).run(suite)
四、创建run.py文件
import unittest
if name ==‘main’:
test_dir = ‘./testcases’
discover = unittest.defaultTestLoader.discover(test_dir,pattern=“test_*.py”)
unittest.TextTestRunner(verbosity=2).run(discover)
总结:测试用例执行过程
写好testcase------通过TestLoader加载testcase到TestSuite中----然后TextTestRunner运行TestSuite--------整个过程集成在unittest.main模块中

下载测试报告源码地址https://github.com/huilansame/HTMLTestRunner_PY3
生成测试报告

if name ==‘main’:
report_title = ‘用例执行报告20210806’
desc = ‘用于展示修改样式后的HTMLTestRunner’
report_file = ‘./result.html’

test_dir = './testcases'
discover = unittest.defaultTestLoader.discover(test_dir,pattern="test_*.py")
# unittest.TextTestRunner(verbosity=2).run(discover)



with open(report_file, 'wb') as report:
    runner = HTMLTestRunner(stream=report, title=report_title, description=desc)
    runner.run(discover)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值