欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python中的测试框架

程序员文章站 2022-04-02 08:06:46
一、测试常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的; 每个测试单元必须是完全独立的,必须能单独运行。这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作。通常通...

一、测试常用规则

  • 一个测试单元必须关注一个很小的功能函数,证明它是正确的;
  • 每个测试单元必须是完全独立的,必须能单独运行。这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作。通常通过setup()和setdown()方法处理;
  • 编写执行快速的测试代码。在某些情况下,测试需要加载复杂的数据结构,而且每次执行的时候都要重新加载,这个时候测试执行会很慢。因此,在这种情况下,可以将这种测试放置一个后台的任务中。
  • 在编写代码前执行完整的测试,而且在编写代码后再重新执行一次。这样能保证你后来编写的代码不会破坏任何事情;
  • 在提交代码前执行完整的测试;
  • 如果在开发期间被打断了工作,写一个打断的单元测试,关于你下一步将要开发的。当你回来工作时,你能知道上一步开发到的指针;
  • 单元测试函数使用长的而且具有描述性的名字。在正式执行代码中,可能使用square()或sqr()取名,但是在测试函数中,你必须取像test_square_of_number_2()、test_square_negativer_number()这些名字,这些名字描述更加清楚;
  • 测试代码必须具有可读性;
  • 单元测试对新进的开发人员来说是工作指南。

二、python常用的测试框架

1. unittest

unittest是python内置的标准类库

unittest 和 junit类似,可以说是python的标准单元测试框架,所以有时也被人称为 pyunit。它使用起来和xunit 家族其他成员类似。 用的人也比较多。兼容 python2 以及python3 。

2、unittest2

unittest2 可以说是一个针对 unittest测试框架新特性的补丁。它很大程度上和unittest都类似。然后还添加了一些unittest没有的方法。

3、pytest

py.test是unittest的替代工具。

尽管它是一个功能丰富、灵活的测试框架,但是它的语法很简单。创建一个单元测试就像编写一个模块一样。相比unittest,实现相同的测试功能,py.test做的事情更少。
pytest 直接可以通过 @pytest.mark.parametrize 进行参数化,而unittest 则需要借助ddt。

4、nose

nose是对unittest的扩展,使得python的测试更加简单。nose自动发现测试代码并执行,nose提供了大量的插件,比如测试输出的xunitcompatible,覆盖报表等等。
基于python的测试驱动开发实战 也有nose的用法:
还有一个特定就是,nose可以采用 @with_setup() 来定义方法的setup和teardown。

5、doctest

doctest模块会搜索那些看起来像交互式会话的 python 代码片段,然后尝试执行并验证结果。

6、tox

最大的特色,是自动最测试环境的管理以及使用多个解析器配置进行测试。

tox的详细文档:

7、mock

unittest.mock是用来测试python的库。

在python3.3版本以后,这个是一个标准库。 对老版本来说,使用pip install mock 进行安装。

mock的精髓在于,你可以使用模拟的对象来替代你的系统的一部分,然后验证后续的执行是否正确。
mock的详细文档:

以上就是python中的测试框架的详细内容,更多关于python 测试框架的资料请关注其它相关文章!