py3.7.1
unittest——单元测试框架
unittest框架的灵感来源是JUnit,与其他语言的主要单元测试框架有相同的风格。unittest的优势:1.支持自动化测试 2.有用来建立和销毁测试的公用代码 3.支持聚合测试用例成为一个集合 4.从报告框架中独立出测试的部分。
为了达到上面4点,unittest有一些重要的面向对象方式的概念:
test fixture 测试脚手架
test fixture代表一个或多个测试所需的准备工作以及与清理有关的操作,例如创建临时或代理数据库、目录,启动服务器进程等。
test case 测试用例
test case是指测试中单独的测试单元。它检查了对特定输入集合的特定响应。unittest提供了一个可用于创建新测试用例的基类(base class)TestCase。
test suite 测试套件
test suite是一个测试用例、测试用例集或两者都有的集合,它是用来聚合应该一起执行的测试。
test runner 测试运行器
test runner是一个用于协调测试的执行并向用户提供测试结果的组件。这个组件可能使用图形化界面、文本界面或者返回一个特殊值来提示执行测试的结果。
也应该了解的东西:
doctest模块
一个和unittest框架风格完全不同的测试支持模块
Simple Smalltalk Testing: With Patterns
nose和pytest
第三方测试框架,使用较轻量的语法来编写测试
Python测试工具分类
一个大而全的Python测试工具列表,包括功能测试框架和模拟对象库 The Python Testing Tools Taxonomy
Testing in Python Mailing List
一个基于python的专门讨论测试、测试工具的特殊兴趣小组 Testing in Python Mailing List
Python源码中的脚本Tools/unittestgui/unittestgui.py(PyUnit自带)是一个用于测试发现和执行的GUI工具。这主要是为了方便刚接触单元测试的人使用。对于生产环境,建议测试由Buildbot、Jenkins或Hudson等持续集成系统驱动。