UnitTest自动化测试框架基本用例组织形式

【原文链接】UnitTest自动化测试框架基本用例组织形式

1 UnitTest自动化测试框架简介

Unittest自动化测试框架是python语言自带的单元测试框架,UnitTest最初叫做PyUnit,早起一般应用于单元测试中,随着python的不断发展,UnitTest住建成长为一种简单易用的轻量级的自动化测试框架,后续随着技术的发展,UnitTest又衍生出一个更高级的自动化测试框架Pytest,因此Pytest自动化测试框架可以很容易的兼容UnitTest,在python自动化测试领域,使用最广泛的三种自动化测试框架为Pytest、UnitTest,RobotFramework,UnitTest是python自带的,无需另外单独安装

2 UnitTest四大组件

  • text fixture:setUp(), tearDown(), setUP是前置条件,tearDown是清理和释放资源区
  • test case:测试用例,通过继承unittest.TestCase来实现用例的继承,如下所示:
import  unittest

class TestDemo01(unittest.TestCase):
    pass
  • test suite:测试套,或称为测试用例集
  • test runner:执行器,一般通过runner来调用suite去执行测试

3 最简单的unittest用例组织形式

如下,测试类中只有一个测试函数,这是最简单的额形式,使用unittest.main()调用执行

import  unittest

class TestDemo01(unittest.TestCase):
    def test_01(self):
        print("in test_01...")

if __name__=="__main__":
    unittest.main()

执行结果如下:

Ran 1 test in 0.002s

OK
in test_01...

4 带有setUp和tearDown用例组织形式

setUp中的代码是在每个用例执行之前都会执行,tearDown中的代码是在每个用例执行结束后都会去执行,从而可以在setUp中编写初始化之类的操作,而在tearDown中编写清理环境或者释放资源的操作代码,如下:

import  unittest

class TestDemo01(unittest.TestCase):
    def setUp(self) -> None:
        print("in setUp...")

    def tearDown(self) -> None:
        print("in testDown...")

    def test_01(self):
        print("in test_01...")

    def test_02(self):
        print("in test_02...")

if __name__=="__main__":
    unittest.main()

执行结果如下:

in setUp...
in test_01...
in testDown...
in setUp...
in test_02...
in testDown...


Ran 2 tests in 0.002s

OK

5 带有setUpClass和tearDownClass的用例组织形式

setUpClass是在类的所有用例执行之前执行,只执行一次,tearDownClass中的代码是在类的所有用例执行结束之后,再执行,也是执行一次,代码如下:

import  unittest

class TestDemo01(unittest.TestCase):

    @classmethod
    def setUpClass(cls) -> None:
        print("in setUpClass...")

    @classmethod
    def tearDownClass(cls) -> None:
        print("in tearDownClass...")

    def setUp(self) -> None:
        print("in setUp...")

    def tearDown(self) -> None:
        print("in testDown...")

    def test_01(self):
        print("in test_01...")

    def test_02(self):
        print("in test_02...")

if __name__=="__main__":
    unittest.main()

执行结果如下:

in setUpClass...
in setUp...
in test_01...
in testDown...
in setUp...
in test_02...
in testDown...
in tearDownClass...


Ran 2 tests in 0.003s

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值