转自http://blog.csdn.net/zbyufei/article/details/6574213

一、安装nose

  先用easy_install 安装 nose,easy_install是一个很好的python工具,可以方便安装很多的python程序。可以去http://pypi.python.org/pypi/setuptools了解一下easy_install。如果懒得去看的,可以直接从这里下载安装文件进行安装就可以了,注意,这个链接是windows 32位的安装包。

  安装完easy_install后,在相应版本的Scripts目录下(例如C:/Python26/Scripts)会有一个easy_install.exe程序,通过这个就可以安装了。在命令行下转到Python的Scripts目录下,执行以下的命令进行安装:

  C:/Python26/Scripts/easy_install nose

上面的 C:/Python26/Scripts 需要根据您的Python的安装路径进行修改。
安完毕后,在 C:/Python26/Scripts 下会有一个nosetests.exe文件,通过这个exe程序就可以在命令行下运行测试了。最好是把 C:/Python26/Scripts 加入环境变量,这样在其它目录中可以直接引用nosetests.exe。

二、运行测试

  在命令行下,直接运行nosetests(注意要把nosetests.exe所在的目录加入到环境变量Path里面),它就会自动查找当前目录下包含"Test"字符串的目录和文件进行测试
这样我们可以把所有测试case放在一起,然后让测试自己去运行,我们最后看结果就可以了。我们可以指定具体如何输出结果,也可以指定如何搜索文件和文件夹,还可以把测试结果输入到指定的文件。

三、编写测试
a)简单的测试

=======================
#### file: test.py ####
=======================def Testfunc():a = 1b = 2assert a == b

  把上面的文件保存到一个目录下,然后在该目录下在命令行里执行nosetests就可以运行测试了。

b)模块的setUp和tearDown

def setUp():print "function setup"def tearDown():print "function teardown"def Testfunc1():print "Testfunc1"assert Truedef Testfunc2():print "Testfunc2"assert True

  nose在文件中如果找到函数setup, setup_module, setUp 或者setUpModule等,那么会在该模块的所有测试执行之前执行该函数。如果找到函数 teardown,tearDown, teardown_module或者 tearDownModule 等,那么会在该模块所有的测试执行完之后执行该函数。

  对于上面的代码,nose实际的执行过程是这样的:

  setUp()->Testfunc1()->Testfunc2()->tearDown()

c)测试函数的setUp和tearDown

  可能会想给每个函数单独指定类似的setUp和tearDown函数,可以如下处理:

  def setUp():print "function setup"def tearDown():print "function teardown"def func1Start():print "func1 start"def func1End():print "func1 end"def func2Start():print "func2 start"def func2End():print "func2 end"def Testfunc1():print "Testfunc1"assert Truedef Testfunc2():print "Testfunc2"assert TrueTestfunc1.setup = func1StartTestfunc1.tearDown = func1EndTestfunc2.setup = func2StartTestfunc2.tearDown = func2End

  注意最后面的四行,分别指定了Testfunc1和Testfun2的setup和teardown函数。

  nose对上面代码的具体执行顺序如下:

  setUp()->func1Start()->Testfunc1()->func1End()->func2Start()->Testfunc2()->func2End()->tearDown()

  d)测试类的的setUp和tearDown

  看如下的代码:

 class TestClass():arr1 = 2arr2 = 2def setUp(self):self.arr1 = 1self.arr2 = 3print "MyTestClass setup"def tearDown(self):print "MyTestClass teardown"def Testfunc1(self):assert self.arr1 == self.arr2def Testfunc2(self):assert self.arr1 == 2

  这里nose会 对每个类的测试方法单独创建类的实例,并且有单独的setUp和tearDown。nose对上面测试的顺序如下:

  setUp()->Testfunc1()->TearDown()->setUp()->Testfunc2()->TearDown()

  e)package的setUp和tearDown

  package的setUp和tearDown方法需要放在__init__.py这个文件中,整个package只执行一次setUp和一次tearDown。

四、nosetest常用的命令行参数

  这里只重点介绍几个常用的,其它的参数可以通过nosetests -h进行查看。

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

  例如: nosetest -w c:/pythonTests/Test1,只运行目录c:/pythonTests/Test1下的测试。可以指定多个目录,例如: nosetest -w c:/pythonTests/Test1 -w c:/pythonTests/Test2。

  b)-s,不捕获输出,会让你的程序里面的一些命令行上的输出显示出来。例如print所输出的内容。

  c)-v,查看nose的运行信息和调试信息。例如会给出当前正在运行哪个测试。

Python的学习(十八)---- 单元测试工具nose相关推荐

  1. python图片-Python中的十大图像处理工具

    原标题:Python中的十大图像处理工具 导读:本文主要介绍了一些简单易懂最常用的Python图像处理库. 作者:Parul Pandey 来源:大数据文摘(ID:BigDataDigest) 当今世 ...

  2. PyTorch框架学习十八——Layer Normalization、Instance Normalization、Group Normalization

    PyTorch框架学习十八--Layer Normalization.Instance Normalization.Group Normalization 一.为什么要标准化? 二.BN.LN.IN. ...

  3. PyTorch框架学习十五——可视化工具TensorBoard

    PyTorch框架学习十五--可视化工具TensorBoard 一.TensorBoard简介 二.TensorBoard安装及测试 三.TensorBoard的使用 1.add_scalar() 2 ...

  4. Python的学习(十六):对文件的操作

    Python的学习(十六):对文件的操作 编码格式的介绍 Python中的解释器使用的是Unicode(内存) .py文件在磁盘上使用UTF-8存储(外存) 如何修改文件格式?不写的话默认为UTF-8 ...

  5. C1认证学习十八、十九(表单元素、转义字符)

    C1认证学习十八.十九(表单元素.语义化标签) 十八 任务背景 HTML的表单用于收集用户的输入,表单元素是指的不同类型的input元素,复选框,单选按钮,提交按钮等等. 任务目标 掌握表单标签以及其 ...

  6. [Python人工智能] 二十八.Keras深度学习中文文本分类万字总结(CNN、TextCNN、LSTM、BiLSTM、BiLSTM+Attention)

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了BiLSTM-CRF模型搭建及训练.预测,最终实现医学命名实体识别实验.这篇文章将详细讲解Keras实现经典 ...

  7. python dlib学习(八):训练人脸特征点检测器

    前言 前面的博客(python dlib学习(二):人脸特征点标定)介绍了使用dlib识别68个人脸特征点,但是当时使用的是dlib官方给出的训练好的模型,这次要自己训练一个特征点检测器出来.当然,想 ...

  8. Python深度学习十大核心算法!

    深度学习已经成为了一种热门的技术,它的应用领域正在不断扩大.在深度学习中,有一些核心的算法是非常重要的,这些算法为深度学习的应用提供了强大的基础.在本文中,我们将介绍基于Python深度学习的十大核心 ...

  9. 大数据分析十八般工具

    大数据分析是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理.该数据集通常是万亿或EB的大小.这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如 ...

最新文章

  1. 分享2020 几个好用的ip地址归属地查询
  2. 多模态理论张德禄_观点 | 多模态研究:认知语言学的新方法
  3. php 根据权重随机数,PHP根据概率产生随机数
  4. 我9月底的SAP Spartacus开发进展情况
  5. [转] java.nio.ByteBuffer中flip、rewind、clear方法的区别
  6. ES6对于数组的扩展
  7. SpringMVC的响应数据和结果视图
  8. IE和火狐读取XML方法比较
  9. Oracle 禁止操作系统认证登录
  10. 模型保存的方法-----仅保存权重
  11. 翻译:SET PASSWORD语句(已提交到MariaDB官方手册)
  12. 基于C++实现的运动会统分系统
  13. 上古卷轴5:重制版AFT管理随从导致瑟拉娜Serana有关的MOD眼睛变金色的问题解决
  14. 怎样快速实现两台电脑硬盘文件共享?
  15. c# datetime._C#| DateTime.TimeOfDay属性(带示例)
  16. 四五百蓝牙耳机哪个好?500元以内音质最好的蓝牙耳机
  17. Codeforces 854 B Maxim Buys an Apartment
  18. SQL语句创建、修改视图的方法
  19. Linux Shell操作json工具jq
  20. oracle修复工具下载,Oracle数据库恢复工具DataNumen Oracle Recovery

热门文章

  1. matlab如何仿真递推型dft算法,递推dft算法
  2. Windows驱动_WDDM之二
  3. C\C++中strcat()函数
  4. Android 自动化测试Monkey、Monkeyrunner
  5. 数组(一维数组,二维数组)
  6. 20189220 余超《Linux内核原理与分析》第三周作业
  7. Week 8: Face Detection
  8. 大数据毕设项目 深度学习火焰检测识别 python opencv
  9. 信号处理中的低通、高通和带通滤波器
  10. 网络安全之入侵检测系统