前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >unittest简单应用

unittest简单应用

作者头像
muntainyang
发布2020-10-23 11:28:24
4520
发布2020-10-23 11:28:24
举报
文章被收录于专栏:IT测试前沿

unittest框架是一个python自带的测试框架,主要包含以下部分:

  1. test fixture 用来进行准备工作及结束后的清理工作
  2. test case 测试用例部分,必须是以 test_ 开头
  3. test suit 测试套件,用来进行组合测试用例
  4. test runner 用来执行测试套件组合的用例

test fixture初始化方法的执行顺序

代码语言:javascript
复制
# 导入unittest
import unittest

# 创建测试类
import unittest


# 创建测试类
class MyTestCase(unittest.TestCase):    # 继承TestCase类
    def setUp(self):
        print("测试准备")

    def tearDown(self):
        print("测试结束")

    @classmethod    # 定义setUpClass和tearDownClass方法必须在前面添加@classmethod装饰器
    def setUpClass(cls):
        print("测试类准备")

    @classmethod
    def tearDownClass(cls):
        print("测试类结束")
# 以上为test fixture 部分

    def test_something1(self):
        print("test1")

    def test_something2(self):
        print("test2")

# 以上为test case部分(case的命名必须以 test_ 开头)


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

执行结果:

代码语言:javascript
复制
Testing started at 14:09 ...
"D:\Program Files (x86)\Python37-32\python.exe" "D:\Program Files\JetBrains\PyCharm 2019.2.1\helpers\pycharm\_jb_unittest_runner.py" --path E:/test/demo/demo2.py
Launching unittests with arguments python -m unittest E:/test/demo/demo2.py in E:\test\demo

测试类准备
测试准备
test1
测试结束
测试准备
test2
测试结束
测试类结束


Ran 2 tests in 0.005s

OK

Process finished with exit code 0

以上代码可以看到setUpclass在类方法被调用前首先执行,且只执行一次;tearDownClass最后执行,也执行一次;setUp在每个case执行前执行,tearDown在每个case执行后执行

多个测试case可以用test suit测试套件来组织用例

代码语言:javascript
复制
import unittest
from demo import demo3
from demo import demo4

#构造测试集
suite = unittest.TestSuite()
suite.addTest(demo3.MyTest1('test_something1'))
suite.addTest(demo4.MyTest2('test_something2'))

if __name__=='__main__':
    #test runner执行测试
    runner = unittest.TextTestRunner()
    runner.run(suite)

注:要在demo包下创建demo3.py和demo4.py,在两个py里创建两个测试类MyTest1和MyTest2,分别封装两个测试方法test_something1和test_something2

执行结果:

代码语言:javascript
复制
..
----------------------------------------------------------------------
Ran 2 tests in 19.320s

OK

Process finished with exit code 0
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT测试前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档