新手区 Python unittest 测试框架 [中文文档](手动翻译,持续更新...)

Smile · 2018年10月30日 · 最后由 Smile 回复于 2018年10月31日 · 2746 次阅读

文档 Github 地址 (持续更新...希望多贡献点中文文档)

unnitest 中文文档(Unit testing framework)


unittest 框架中文文档,看到官方文档有 English、French、Japanese、Korean,唯独没有 Chinese,这就很不爽了。

🇨🇳

本文:尊重原创,翻译遵循信达雅。

🇨🇳

Python 版本:3.7.1

unittest 官方英文文档


unnitest--单元测试框架

Source code:Lib/unittest/init.py

(亲爱的,如果你对测试概念已经有所了解,请直接跳到 断言方法列表。🌹)

unittest 单元框架最初的灵感来自于 JUnit,它和其他语言中的单元测试框架有着相似的韵味。例如它支持自动化测试、共享测试的设置和关闭代码、将测试聚合到集合中,以及测试与报告框架的独立性。

为此,unittest 以面向对象的方式支持如下概念:

测试夹:

注:测试夹(Fixture) 指的是测试中依赖的数据和条件等等,unittest提供对Fixture的支持。

测试夹是指执行一个或多个测试任务所需要的准备工作,以及任何相关联的清理操作。这可能包括,例如,创建临时或代理数据库、创建目录或启动服务器进程。

测试用例:

一个测试用例是一个独立的单元测试,它检查对特定输入集的特定响应。unittest 提供了一个基类(TestCase),能够用他去创建新的测试用例。

测试套件:

测试套件是测试用例或者测试套件本身的集合,也可以是测试用例和测试套件的混合集合,它把要执行的测试汇聚起来。

测试运行器

测试运行器是用于编排测试用例,以及向用户展示测试结果。运行器可以使用图形界面、文本界面,或者是返回特定的值去展示执行后的测试结果。

请参阅:
doctest模块(https://docs.python.org/3/library/doctest.html#module-doctest):
  另外一种具有独特韵味的测试支持模块。

Simple Smalltalk Testing: With Patterns(https://web.archive.org/web/20150315073817/http://www.xprogramming.com/testfram.htm)
  Kent Beck 的原论文,运用模式在测试框架上,被unittest共享。

Nose and py.test
  使用轻量级的语法来编写测试用例的第三方单元测试框架。
  例如:assert func(10) == 42

The Python Testing Tools Taxonomy(https://wiki.python.org/moin/PythonTestingToolsTaxonomy)
  一张巨大的Python测试工具列表,包括功能测试框架以及模拟对象库。

Python源代码 Tools/unittestgui/unittestgui.py 中的脚本是一个图像界面工具,用于测试调试和执行。这很大程度上是为了方便新手用户写测试用例。
对于生产环境,建议测试用例运行在持续集成系统,例如 Jenkins、Buidlbot、Hudson。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 15 条回复 时间 点赞

楼主,可以组织大家一起来啊

Smile #14 · 2018年10月31日 Author
恒温 回复

好啊,大家一起来好啊,毕竟平常工作没有太多大块的时间 😂

Smile 回复

正在孤独的慢慢啃 pytest 文档,相比于 unittest,pytest 功能更加强大,而且兼容 unittest。

Sutune 回复

有没有兴趣一块分享一些中文文档啊,不管是 pytest 还是 unittest 🤓

举手,报名

剪烛 回复

Github 用户名发我,我拉你进项目~

有兴趣的同学欢迎来一同创建优质的 Python 中文文档,加油鸭 🌹


刚建的一个 QQ 群:609053712


Smile 回复

用微信群吧

恒温 回复

来了,有兴趣的同学就一块来吧~



学习,mark

Smile 回复

亲,拉上我一起呗

匿名 #12 · 2018年10月31日

pytest 中文文档搞起

Smile #13 · 2018年10月31日 Author
曾星荧 回复

加群搞起啊~

Smile #14 · 2018年10月31日 Author

嗯嗯,确实 pytest 框架更强大~

Smile #14 · 2018年10月31日 Author
Leo 回复

共同学习~

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册