单元测试框架之unittest(三)

davieyang 2018-12-24 原文

单元测试框架之unittest(三)

一、摘要

前边的文章我们看到执行测试用例的是通过调用unittest.mian()函数,它会将模块的测试用例收集起来并执行,然而当我们的测试用例增多了以后,这样的执行非常不灵活而且没有效率,我们更愿意看到自由组合的一组用例,只执行这组用例的方式,unittest.TestSuite能够满足我们这个需求,笔者将一random类作为被测试类来详细展示unittest.TestSuite

二、代码示例

  • 以前的执行方式
# encoding = utf-8
import random
import unittest


class TestRandomFunction(unittest.TestCase):
    def setUp(self):
        self.str = "abcdef!@#$%"

    def tearDown(self):
        pass

    def test_randomchoice(self):
        var = random.choice(self.str)
        self.assertTrue(var in self.str)
        print(var)

    def test_randomsample(self):
        with self.assertRaises(ValueError):
            random.sample(self.str, 100)
        for var in random.sample(self.str, 6):
            self.assertTrue(var in self.str)
            print(var)


class TestRandomShuffleFunction(unittest.TestCase):

    def setUp(self):
        self.list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13]

    def tearDown(self):
        pass

    def test_randomshuffle(self):
        random.shuffle(self.list)
        print(self.list)
        self.list.sort()
        self.assertEqual(self.list, [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13])


if __name__ == '__main__':
    unittest.main()
  • 方式一  使用unittest.TestLoader,它可以通过传给他的参数获取测试用例的测试方法,然后再组合成TestSuite,最后在将TestSuite传递给TestRunner  完成我们所期望的执行组合
# encoding = utf-8
import random
import unittest


class TestRandomFunction(unittest.TestCase):
    def setUp(self):
        self.str = "abcdef!@#$%"

    def tearDown(self):
        pass

    def test_randomchoice(self):
        var = random.choice(self.str)
        self.assertTrue(var in self.str)
        print(var)

    def test_randomsample(self):
        with self.assertRaises(ValueError):
            random.sample(self.str, 100)
        for var in random.sample(self.str, 6):
            self.assertTrue(var in self.str)
            print(var)


class TestRandomShuffleFunction(unittest.TestCase):

    def setUp(self):
        self.list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13]

    def tearDown(self):
        pass

    def test_randomshuffle(self):
        random.shuffle(self.list)
        print(self.list)
        self.list.sort()
        self.assertEqual(self.list, [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13])


if __name__ == '__main__':
    # unittest.main()
    testcase1 = unittest.TestLoader().loadTestsFromTestCase(TestRandomFunction)
    testcase2 = unittest.TestLoader().loadTestsFromTestCase(TestRandomShuffleFunction)
    suite = unittest.TestSuite([testcase1, testcase2])
    unittest.TextTestRunner(verbosity=2).run(suite)
  •  方式二 另创建一个.py文件,定义suite方法,使用unittest.TestSuite().addTest(测试类(测试方法))
# encoding = utf-8
import unittest
from unittest3.TestSuiteDemo2 import *


def suite():
    suite = unittest.TestSuite()
    suite.addTest(TestRandomFunction("test_randomchoice"))
    suite.addTest(TestRandomShuffleFunction("test_randomshuffle"))
    return suite


if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(suite())
  •  方式三 另创建一个.py文件,使用unittest.TestLoader().discover(“路径”,“匹配文件名”)
# encoding = utf-8
import unittest

if __name__ == '__main__':
    suite = unittest.TestLoader().discover('.', pattern='TestSuiteDemo1.py')
    unittest.TextTestRunner(verbosity=2).run(suite)

 

发表于 2018-12-24 23:21 davieyang 阅读() 评论() 编辑 收藏

 

版权声明:本文为davieyang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/davieyang/p/10162469.html

单元测试框架之unittest(三)的更多相关文章

  1. 单元测试框架之unittest(六)

    单元测试框架之unittest(六) 一、摘要 本片博文将介绍unittest框架的一些轻便有效的特性,在我们 […]...

  2. Python中的单元测试模块Unittest

    前言 为什么需要单元测试? 如果没有单元测试,我们会遇到这种情况:已有的健康运行的代码在经过改动之后,我们无法 […]...

  3. Python Unittest – 根据不同测试环境跳过用例详解

    本文章会讲述以下几个内容: 1、Unittest 如何跳过用例 2、如何使用sys.argv 3、自动化测试项 […]...

  4. 单元测试框架之unittest(二)

    单元测试框架之unittest(二) 一、摘要 本章笔者将详细介绍组织测试代码的相关内容,所用的测试例子会是冒 […]...

  5. Python必会的单元测试框架 —— unittest

    http://blog.csdn.net/huilan_same/article/details/529447 […]...

  6. unittest单元测试框架入门及应用

    unittest单元测试框架入门及应用 一、简介   unittest是Python单元测试框架。unitte […]...

  7. python之mock模块基本使用

    mock简介 mock原来是python的第三方库 python3以后mock模块已经整合到了unittest […]...

  8. 单元测试框架之unittest(五)

    单元测试框架之unittest(五) 一、摘要 单元测试里很重要的一个部分就是断言,unittest为我们提供 […]...

随机推荐

  1. Node.js躬行记(5)——定时任务的调试

      最近做一个活动,需要用到定时任务,于是使用了 node-schedule 库。   用法很简单,就是可配置 […]...

  2. Python爬虫的简单入门(一)

    Python爬虫的简单入门(一) 简介 这一系列教学是基于Python的爬虫教学在此之前请确保你的电脑已经成功 […]...

  3. 测序简史

    测序简史 测序简史 一代   二代测序   三代测序 一文从一代到最新的测序技术,希望能够帮助你。 序 这几天 […]...

  4. [转]Eclipse 的快捷键以及文档注释、多行注释的快捷键

      一、多行注释快捷键 1.选中你要加注释的区域,用ctrl+shift+C 或者ctrl+/ 会加上//注释 […]...

  5. Python实现网站模拟登陆 – 吃咯

    Python实现网站模拟登陆 一、实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Pytho […]...

  6. JDK各个版本的区别

    JDK各个版本的区别   原地址:https://blog.csdn.net/papima/article/d […]...

  7. 引用折叠和完美转发

    阅读本文需要具有的预备知识: 左值和右值的基本概念 模板推导的基本规则 若无特殊说明,本文中的大写字母T泛指任 […]...

  8. 使用Pyhton带你分析酒店里的针孔摄像头

    /1 前言/   最近酒店被曝出隐藏摄像头的事情屡见不鲜,搞得大家人心惶惶,有图为证,如下图所示。   今天教 […]...

展开目录

目录导航