Python单元测试框架:unittest(一)

主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述、命令行接口、测试案例自动搜索、创建测试代码、构建测试套件方法等内容

概述

1.测试脚手架(test fixture)

测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown().

2.测试案例(test case)

最小的测试单元.

3.测试套件(test suite)

测试案例的集合.

4.测试运行器(test runner)

测试执行的组件.

命令行接口

可以用命令行运行测试模块,测试类以及测试方法.

复制代码代码如下:

python -m unittest test_module1 test_module2
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

可加-v打印详细信息

复制代码代码如下:

python -m unittest -v test_module

测试案例自动搜索

unittest支持简单的test discovery. 命令行传入discovery后,框架会自动在当前目录搜索要测试的案例并执行.搜索目录必须是包或者模块.基本使用如下:

复制代码代码如下:

cd project_directory 
python -m unittest discover

子选项如下: 
-v, –verbose 
输出信息的详细级别

-s, –start-directory directory 
开始搜索目录 (默认为当前目录)

-p, –pattern pattern 
匹配的文件名 (默认为test*.py)

-t, –top-level-directory directory 
搜索的顶层目录 (默认为start directory)

创建测试代码

1.方式一

创建子类继承unittest.TestCase,然后重写以下方法

复制代码代码如下:

class WidgetTestCase(unittest.TestCase):
    def setUp(self):
        pass
    def runTest(self):
        pass
    def tearDown(self):
        pass

运行

2.方式二

编写以test开头的方法

复制代码代码如下:

class WidgetTestCase(unittest.TestCase):
    def setUp(self):
        pass

def test_xx1(self)
    def test_xx2(self)
    ...
    def test_xxN(self)

def tearDown(self):
        pass

构建测试套件

方式一

复制代码代码如下:

widgetTestSuite = unittest.TestSuite()
widgetTestSuite.addTest(WidgetTestCase(‘test_default_size‘))
widgetTestSuite.addTest(WidgetTestCase(‘test_resize‘))

方式二(推荐)

复制代码代码如下:

def suite():
    suite = unittest.TestSuite()
    suite.addTest(WidgetTestCase(‘test_default_size‘))
    suite.addTest(WidgetTestCase(‘test_resize‘))
    return suite

方式三(推荐)

复制代码代码如下:

def suite():
    tests = [‘test_default_size‘, ‘test_resize‘]
    return unittest.TestSuite(map(WidgetTestCase, tests))

方式四

多个测试套件构建成更大的测试套件

复制代码代码如下:

suite1 = module1.TheTestSuite()
suite2 = module2.TheTestSuite()
alltests = unittest.TestSuite([suite1, suite2])

方式五

unittest的TestLoader提供生成默认的测试套件

复制代码代码如下:

suite = unittest.TestLoader().loadTestsFromTestCase(WidgetTestCase)

忽略测试案例( Python2.7支持)

可以分无条件忽略和有条件忽略,通过装饰器实现

复制代码代码如下:

class MyTestCase(unittest.TestCase):

@unittest.skip("demonstrating skipping")
    def test_nothing(self):
        self.fail("shouldn‘t happen")

@unittest.skipIf(mylib.__version__ < (1, 3),
                     "not supported in this library version")
    def test_format(self):
        # Tests that work for only a certain version of the library.
        pass

@unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
    def test_windows_support(self):
        # windows specific testing code
        pass

测试类也可以忽略

复制代码代码如下:

@unittest.skip("showing class skipping")
class MySkippedTestCase(unittest.TestCase):
    def test_not_run(self):
        pass

python利用unittest进行测试用例执行的几种方式

原文地址:https://www.cnblogs.com/yaoteng/p/10979094.html

时间: 2024-10-08 08:40:44

Python单元测试框架:unittest(一)的相关文章

Python单元测试框架unittest之深入学习

前言 前几篇文章该要地介绍了python单元测试框架unittest的使用,本篇文章系统介绍unittest框架. 一.unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 下面我们分别来解释这四个概念的意思,先来看一张unittest的静态类图(下面的类图以及解释均来源于网络,原文链接): 一个TestCase的实例就是一个测试用例.什么是测试用例呢?就是一个完整的测试流程,包括测

Python单元测试框架 unittest

Python单元测试框架 作者: Steve Purcell, <stephen_purcell at yahoo dot com>翻译: Heiz, <heiz dot yuan at gmail dot com>项目网站: http://pyunit.sourceforge.net/ 目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代

Python单元测试框架 —— unittest

文章转自 :https://blog.csdn.net/huilan_same/article/details/52944782 unittest是xUnit系列框架中的一员,如果你了解xUnit的其他成员,那你用unittest来应该是很轻松的,它们的工作方式都差不多. unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture 下面我们分别来解释这四个概念的意思,先来看一张unittes

Python单元测试框架unittest测试过程简介

测试步骤 1. 导入unittest模块 import unittest 2. 编写测试的类继承unittest.TestCase class Tester(unittest.TestCase) 3. 编写测试的方法必须以test开头 def test_add(self) def test_sub(self) 4.使用TestCase class提供的方法测试功能点 Method Checks that New in assertEqual(a, b) a == b   assertNotEqu

python单元测试框架-unittest(五)之跳过测试和预期失败

概要 @unittest.skip(reason): skip(reason)装饰器:直接跳过测试,并说明跳过测试的原因. @unittest.skipIf(reason): skipIf(condition,reason)装饰器:条件为真时,跳过测试,并说明跳过测试的原因 @unittest.skipUnless(reason): skipUnless(condition,reason)装饰器:条件为假时,跳过测试,并说明跳过测试的原因 @unittest.expectedFailure():

第六章:单元测试框架unittest

单元测试框架unittest 单元测试 单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等.总的来说,单元就是人为规定的最小的被测功能模块. 单元测试框架 在单元测试框架出现之前,开发人员在创建可执行测试时饱受折磨.最初的做法是在应用程序中创建一个窗口,配有"测试控制工具(harness)".它只是一

Python 单元测试框架 —— PyUnit

转载自http://www.oschina.net/question/12_27127#GUI 目录 概况 系统要求 使用PyUnit构建自己的测试   安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的放置位置 交互式运行测试 从命令行运行测试 在用户界面窗口运行测试 为测试编写文档 更多关于测试条件 测试相等性 测试异常 通过PyUnit复用旧测试代码 在JPython和Jython中使用PyUn

Python单元测试:unittest使用简介

一.概述 本文介绍python的单元测试框架unittest,这是Python自带的标准模块unittest.unittest是基于java中的流行单元测试框架junit设计的,其功能强大且灵活,对于熟悉junit的人来说掌握unittest很简单. unittest涉及的知识点较多,但核心的就那一些,本文只介绍最核心和基础的内容. 类似junit,使用unittest编写python的单元测试代码,包括如下几个步骤: 1)编写一个python类,继承 unittest模块中的TestCase类

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

用Python搭建自动化测试框架,我们需要组织用例以及测试执行,这里博主推荐Python的标准库--unittest. unittest是xUnit系列框架中的一员,如果你了解xUnit的其他成员,那你用unittest来应该是很轻松的,它们的工作方式都差不多. unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 下面我们分别来解释这四个概念的意思,先来看一张unittest的静态