专栏首页IT测试前沿unittest简单应用

unittest简单应用

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

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

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

# 导入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()

执行结果:

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测试套件来组织用例

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

执行结果:

..
----------------------------------------------------------------------
Ran 2 tests in 19.320s

OK

Process finished with exit code 0

本文分享自微信公众号 - IT测试前沿(gh_a3e0fe8fdded),作者:IT测试前沿

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 软件测试工程师承受的压力(二)

    其他两点:4.收入的压力 5.家庭的压力,因为所有职场人都会有遇到,暂时不说了。

    muntainyang
  • 你还在用Jmeter的GUI模式进行性能测试吗?

    使用Jmeter时选择GUI模式还是Non GUI模式?有的测试同学可能还没时间细看Jmeter启动后的命令行日志的内容:

    muntainyang
  • unittest框架简介及应用

    muntainyang
  • [PHP] 工厂模式的日常使用

    陶士涵
  • PHP工厂模式的日常使用

    以上所述是小编给大家介绍的PHP工厂模式的日常使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLo...

    砸漏
  • [python]函数返回多个return

    py3study
  • 使用Java JUnit框架里的@Rule注解的用法举例

    Suppose you need to repeatedly execute some test method in your unit test case, ...

    Jerry Wang
  • python参数化测试

    参数化测试的目的是针对多组参数运行测试。我们可以通过@ pytest.mark.parametrize做到这一点。

    用户7466307
  • pytest文档3-pycharm运行pytest

    上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多 写完用例之后,需要调试看看,是不是能正常...

    上海-悠悠
  • Oracle In-Memory Option的细节

    在OOW大会之后,Oracle In-Memory Option这一数据库选件的细节被更多的公布出来。我选取一点信息和大家分享。 In-Memory Optio...

    数据和云

扫码关注云+社区

领取腾讯云代金券