博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的单元测试框架
阅读量:6481 次
发布时间:2019-06-23

本文共 2101 字,大约阅读时间需要 7 分钟。

1、unittest是Python内置的标准类库。它的API跟Java的JUnit、.net的NUnit,C++的CppUnit很相似。

   通过继承unittest.TestCase来创建一个测试用例。参考

   需要使用特定类模板

2、Doctest  doctest 模块会搜索那些看起来像交互式会话的 Python 代码片段,然后尝试执行并验证结果.即使从没接触过 doctest,我们也可以从这个名字中窥到一丝端倪。“它看起来就像代码里的文档字符串(docstring)一样” 如果你这么想的话,就已经对了一半了。

3、pytest是unittest的替代工具。

尽管它是一个功能丰富、灵活的测试框架,但是它的语法很简单。创建一个单元测试就像编写一个模块一样。相比unittest,实现相同的测试功能,pytest做的事情更少。

pytest 在命令行中有彩色输出

不需要使用特定类模板

setup/teardown 语法与 unittest 的兼容性不如 nose 高,实现方式也不如 nose 直观

4、Nose是对unittest的扩展,使得python的测试更加简单。nose自动发现测试代码并执行,nose提供了大量的插件,比如测试输出的xUnitcompatible,覆盖报表等等。

 不需要使用特定类模板

不需要unittest那种必须有固有的格式,他只需要文件,类名,方法名等含有test就可以

nosetests 兼容对 doctest 和 unittest 测试脚本的解析运行

nose是开源的测试库,比unittest更为强大,其运行顺序按 setUp->test_func_1->test_func_2->...->tearDown 顺序执行。其中setUp是初始化定义各个参数的,tearDown是执行完各个测试函数再执行的,中间的 test_func_* 就是自己要测试的函数

nose会自动识别源文件,目录或包中的测试用例。任何符合正则表达式:

  1. (?:^|[b_.-])[Tt]est  

的类、函数、文件或目录,以及TestCase的子类都会被识别并执行。

运行:

nosetests [文件]

nosetests [目录]

如果不加目录,默认执行当前目录下的所有符合nose条件的用例,

如果加目录,则运行指定目录里面符合nose条件的用例

常用参数

-v 把运行中的具体过程输出nosetests -v

-s 把测试用例中的print输出打印到控制台,这个调试的时候还是挺方便的

-w ,指定一个目录运行测试。目录可以是相对路径或绝对路径

nose里面常用的工具有很多函数,比如类似unittest的assertEqual

使用方法

from nose import tools

然后看下里面有这么多的方法

assert_almost_equalassert_almost_equalsassert_dict_contains_subsetassert_dict_equalassert_equalassert_equalsassert_falseassert_greaterassert_greater_equalassert_inassert_isassert_is_instanceassert_is_noneassert_is_notassert_is_not_noneassert_items_equalassert_lessassert_less_equalassert_list_equalassert_multi_line_equalassert_not_almost_equalassert_not_almost_equalsassert_not_equalassert_not_equalsassert_not_inassert_not_is_instanceassert_not_regexp_matchesassert_raisesassert_raises_regexpassert_regexp_matchesassert_sequence_equalassert_set_equalassert_trueassert_tuple_equaleq_istestmake_decoratornontrivialnontrivial_allnottestok_raisesset_tracetimedtrivialtrivial_allwith_setup

mock

那mock是啥子东西,mock可以用来模拟不同的资源,比如我们要调用数据库进行增删改查,而创建一个数据库,写入真实数据进行操作未免代价太大,这时候mock就起作用了。广泛的说,mock可以代替那些不易操作的资源

 

参考:

1、http://www.tuicool.com/articles/2uIv6v2

2、http://www.tuicool.com/articles/u6ZJry

3、https://my.oschina.net/lionets/blog/269174

转载地址:http://kgfuo.baihongyu.com/

你可能感兴趣的文章
ORACLE 的游标
查看>>
虚拟机安装的UBUNTU全屏的方法:
查看>>
java虚拟机类加载器
查看>>
ASP.NET状态管理之八(会话Session)
查看>>
background
查看>>
转载:大型网站架构演变和知识体系
查看>>
set集合
查看>>
SVN服务器的搭建和使用
查看>>
mvc中枚举的使用和绑定枚举值到DropDownListFor
查看>>
多目标跟踪的评价指标
查看>>
python 生成器
查看>>
HTTPS(SSL)详解以及PHP调用方法
查看>>
突发小事件,USB接口问题
查看>>
Nginx负载均衡配置实例详解
查看>>
L1-009. N个数求和
查看>>
实参传递不当导致的运行时错误
查看>>
sqlserver 批量删除存储过程(转)
查看>>
自建型呼叫中心
查看>>
Inno setup中定制安装路径
查看>>
要懂得对你的老板好一点!
查看>>