python unittest 基本介绍

1介绍下unittest的基本使用方法:

1.import unittest 
2.定义一个继承自unittest.TestCase的测试用例类 
3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。

4.定义测试用例,名字以test开头。

5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。

6.调用unittest.main()启动测试 
7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。

具体例子如下:

# -*- coding: cp936 -*-
import unittest

class DefaultWidgetSizeTestCase(unittest.TestCase):
    def setUp(self):    #测试前的准备工作
        pass

def test_testcase1(self):   #测试用例1,且必须以test开头才能被认作是一个测试用例
        pass

def test_testcase2(self):
        pass

def test_testcase3(self):
        pass

def runTest(self):

pass

def tearDown(self):  #测试后的清除数据工作
        pass

if __name__ == "__main__":

unittest.main()   #必须调用main启动此次测试

查看了unittest的源代码发现,这个类中有四个testcase,3个以test开头,另一个是runTest,但是结果只运行了test开头的3个testcase,是因为代码中写着如果有test开头的则运行test开头的testcase,如果没有test开头的testcase而又存在runTest,怎运行runtest这个测试用例,在这里例子中,如果把3个test开头的testcase注释掉,则显示运行了一条testcase,即runTest。

测试结果:

...
----------------------------------------------------------------------
Ran 3 tests in 0.078s

OK

2 下面是unittest模块的常用方法:

assertEqual(a, b)     a == b

assertNotEqual(a, b)     a != b

assertTrue(x)     bool(x) is True

assertFalse(x)     bool(x) is False

assertIs(a, b)     a is b     2.7 
assertIsNot(a, b)     a is not b

2.7 assertIsNone(x)     x is None     2.7 
assertIsNotNone(x)     x is not None     2.7

assertIn(a, b)     a in b     2.7 
assertNotIn(a, b)     a not in b     2.7 
assertIsInstance(a, b)     isinstance(a, b)     2.7 
assertNotIsInstance(a, b)     not isinstance(a, b)     2.7

3也有其他的unittest方法,用于执行更具体的检查,如:

Method     Checks that     New in

assertAlmostEqual(a, b)     round(a-b, 7) == 0

assertNotAlmostEqual(a, b)     round(a-b, 7) != 0

assertGreater(a, b)     a > b     2.7

assertGreaterEqual(a, b)     a >= b     2.7

assertLess(a, b)     a < b     2.7

assertLessEqual(a, b)     a <= b     2.7

assertRegexpMatches(s, re)     regex.search(s)     2.7

assertNotRegexpMatches(s, re)     not regex.search(s)     2.7

assertItemsEqual(a, b)     sorted(a) == sorted(b) and works with unhashable objs     2.7

assertDictContainsSubset(a, b)     all the key/value pairs in a exist in b     2.7

单元测试例子:

  • import random
  • import unittest
  • class TestSequenceFunctions(unittest.TestCase):
  • def setUp(self):
  • self.seq = range(10)
  • def test_shuffle(self):
  • # make sure the shuffled sequence does not lose any elements
  • random.shuffle(self.seq)
  • self.seq.sort()
  • self.assertEqual(self.seq, range(10))
  • # should raise an exception for an immutable sequence
  • self.assertRaises(TypeError, random.shuffle, (1,2,3))
  • def test_choice(self):
  • element = random.choice(self.seq)
  • self.assertTrue(element in self.seq)
  • def test_sample(self):
  • with self.assertRaises(ValueError):
  • random.sample(self.seq, 20)
  • for element in random.sample(self.seq, 5):
  • self.assertTrue(element in self.seq)
  • if __name__ == ‘__main__‘:
  • unittest.main()
  • 时间: 2024-10-01 07:16:15

    python unittest 基本介绍的相关文章

    python unittest基本介绍

    python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 1.介绍下unittest的基本使用方法: 1)import unittest 2)定义一个继承自unittest.TestCase的测试用例类 3)定义setUp和tearDown,在每个测试用例前后做一些辅助工作. 4)定义测试用例,名字以test开头. 5)一个测试用例应该只测试一个方面,测试目的和测试内容应很明确.主要是调用assertEqual.assertRaises等断言方法判断程序执行结果和预

    python unittest不执行&quot;if __name__ == &#39;__main__&#39; &quot;问题

    问题: selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行. 假设代码为: from selenium import webdriver import unittest class Test(unittest.TestCase): print "this is class Test" def setup(self): print "this is setup" def test_1(self): print "

    python的bif介绍

    Python是面向对象的解释性程序设计语言,Python的语法简洁,特点是用空白符作为语句缩进. BIF(bulit in function)内置函数,就是Python自身提供的函数功能,编程者直接使用即可,在Python或IDLE Shell中使用  dir(__builtins__)  命令查看Python的内置函数. 1 ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOE

    python 常库介绍及安装方法

    文大赛,秀绝招,赢无人机! python 常库介绍及安装方法 标签: PYTHON库 2016-10-13 15:32 798人阅读 评论(0) 收藏 举报  分类: 其他(33)  bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包My

    Python 手册——Python的非正式介绍

    在后面的例子中,区分输入和输出的方法是看是否有提示符(“>>> ”和“.. ”):想要重复这些例子的话,你就要在提示符显示后输入所有的一切:没有以提示符开始的行,是解释器输出的信息.需要注意的是示例中的 从属提示符用于多行命令的结束,它表示你需要输入一个空行. 本手册中的很多示例都包括注释,甚至有一些在交互提示符中折行.Python中的注释以符号“#”起始,一直到 当前行的结尾.注释可能出现在一行的开始,也可能跟在空格或程序代码之后,但不会出现在字符串中,字符 串中的#号只代表#号. 示

    简单实现接口自动化测试(基于python+unittest)

    简单实现接口自动化测试(基于python+unittest) 简介 本文通过从Postman获取基本的接口测试Code简单的接口测试入手,一步步调整优化接口调用,以及增加基本的结果判断,讲解Python自带的Unittest框架调用,期望各位可以通过本文对接口自动化测试有一个大致的了解. 引言 为什么要做接口自动化测试? 在当前互联网产品迭代频繁的背景下,回归测试的时间越来越少,很难在每个迭代都对所有功能做完整回归.但接口自动化测试因其实现简单.维护成本低,容易提高覆盖率等特点,越来越受重视.

    python unittest 测试所有相关单元测试

    python unittest 测试所有相关单元测试 python -m unittest discover project_directory "ut_*.py" 原文地址:https://www.cnblogs.com/bingwork/p/9714318.html

    Python Unittest框架用例执行失败自动截图

    原生的unittest框架是不支持case失败后自动截图功能,网上的解决办法,大体上分为两种: 1.加装饰器 可参考让unittest框架在fail时自动截图的装饰器.给测试用例添加多个装饰器的问题 (python unittest.TestCase) 2.封装断言 可参考Getting Python's unittest results in a tearDown() method.python 自动化测试,求助:如何判断用例断言失败后自动截图 原文地址:https://www.cnblogs

    Python的简单介绍/解释器/变量/变量的数据类型/用户交互及流程控制(if)

    一.Python的简单介绍 1.python是一门 解释型弱类型编程语言. 2.特点: 简单.明确.优雅 二.python的解释器有哪些 CPython -- 官方提供的.,内部使用c语言来实现 IPython -- IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的.好多很多国产浏览器虽然外观不同,但内核其实都是调用了IE PyPy -- PyPy是另一个Python解释器,它的