`
Ydoing
  • 浏览: 106174 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Python单元测试框架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
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Python单元测试框架unittest简明使用实例

    Python的单元测试框架unittest提供了一种系统的方式来编写测试用例和测试套件。 unittest框架是Python标准库的一部分,遵循xUnit测试框架的设计思想,xUnit是一系列功能相似的单元测试框架的总称,这些框架被用于...

    python+selenium+unittest自动化测试demo

    3. **Unittest**: Unittest是Python内置的单元测试框架,用于编写和组织测试用例。它可以执行单个测试,也可以按组批量执行。Unittest提供了断言方法(如assertEqual、assertTrue等)来验证预期的结果,还有setUp和...

    Python单元测试框架unittest使用方法讲解

    Python的unittest是一个强大的单元测试框架,它为开发者提供了丰富的功能来编写、组织和运行测试用例。本篇文章将深入探讨unittest的基本概念、使用方法及如何构建测试代码。 首先,了解unittest的基本组成部分: ...

    Python3+unittest+requests+excel实现接口自动化测试框架

    unittest是Python内置的一个单元测试框架,它提供了编写测试用例、组织测试套件和运行测试的基本结构。 unittest框架允许我们定义测试类和测试方法,每个方法以`test_`开头,代表一个测试用例。我们可以为每个接口...

    Python单元测试及unittest框架用法实例解析

    总结起来,Python的`unittest`框架提供了一套完整的单元测试解决方案,包括创建测试用例、组合测试用例、运行测试和管理测试环境。在实际项目中,熟练掌握单元测试和`unittest`框架的使用,有助于提高代码质量,减少...

    Python单元测试实践:使用unittest框架

    Python提供了一个内置的测试框架unittest,它受到Java的JUnit的启发,能够帮助开发者进行自动化测试。本文将详细介绍如何在Python中使用unittest框架进行测试,包括测试用例的编写、测试套件的组织、断言的使用以及...

    python3+selenium3单元测试框架(unittest)使用介绍

    总的来说,单元测试框架unittest为Python的自动化测试提供了强大的支持,它使得测试过程结构化、易于管理和扩展。掌握unittest框架对于Python开发者和测试工程师来说是一个基本且重要的技能。通过合理运用unittest...

    php-php单元测试框架-unitTest.zip

    在本篇中,我们将详细探讨PHP的单元测试以及`unittest`框架。 首先,让我们理解一下单元测试的概念。单元测试是对软件中的最小可测试单元进行检查和验证,如函数、方法或类。它的目标是确保每个独立的部分都能正确...

    python+selenium+unittest测试demo

    1、使用HTMLTestRunner生成测试报告; 2、添加测试套件,运行一个文件执行所有测试用例; 3、只在测试执行前打开浏览器,所有用例执行结束后关闭浏览器。(解决反复启动/关闭driver导致的执行效率问题) 这个源码...

    python单元测试unittest实例详解-电脑资料.pdf

    unittest是Python内置的一个测试框架,它提供了丰富的工具和类来编写和运行单元测试。 unittest框架的主要组件包括: 1. `TestCase`: 这是所有测试用例的基础类,你可以创建子类并定义方法来测试你的代码。每个...

    python unittest自动化接口测试框架

    Python的unittest库是用于编写单元测试的标准库,而将其应用到接口测试上则可以构建一个高效的自动化测试框架。以下将详细介绍如何利用unittest实现Python接口自动化测试框架,并讨论相关的知识点。 首先,unittest...

    Python3+unittest+requests+excel实现接口自动化测试框架源码

    unittest是Python内置的一个轻量级的单元测试框架,用于编写和运行可重复的自动化测试。在接口自动化测试中,unittest可以创建测试用例(TestCase)来组织和执行一系列测试方法。每个测试方法都应以`test_`开头,...

    python3+unittest+request+ddt接口测试

    unittest 是 Python 内置的一个单元测试框架,用于编写和执行自动化测试用例,确保代码的质量和功能稳定性。 在接口测试中,我们通常需要模拟HTTP请求来验证服务器端接口的功能。Python 的 requests 库提供了简单...

Global site tag (gtag.js) - Google Analytics