参考:http://blog.csdn.net/linda1000/article/details/8533349

1、模块的setUp和tearDown

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

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

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

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

2、测试函数的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 True def Testfunc2():
print "Testfunc2"
assert True Testfunc1.setup = func1Start
Testfunc1.tearDown = func1End
Testfunc2.setup = func2Start
Testfunc2.tearDown = func2End

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

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

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

3、测试类的的setUp和tearDown

  看如下的代码:

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

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

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

4、package的setUp和tearDown

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

  可以在__init__.py中定义,setup方法名可以是setup, setup_package, setUp, or setUpPackage,而teardown方法名可以是teardown, teardown_package, tearDown or tearDownPackage。比如定义数据库的连接和释放。

最新文章

  1. 解决fedora25安装vmware12问题:
  2. 将golang程序注册为windows服务
  3. WEB开发之路——基础部分
  4. Spring mvc 报错:No qualifying bean of type [java.lang.String] found for dependency:
  5. Android开源库--Universal Image Loader通用图片加载器
  6. spark stream初探
  7. Android SeekBar实现音量调节
  8. mysql iot 主键自增列问题
  9. ASP添加进度条
  10. js实现本地时间同步
  11. 【转载】vim复制时的缩进
  12. Linux 开放端口
  13. WLST
  14. vue 关于数组和对象的更新
  15. 嵌入式-迅为iTOP-4418/6818开发板编译Android镜像技术分享
  16. 【blog】好用的markdown插件 - Mditor
  17. 10-安装es
  18. 大数据基础篇----jvm的知识点归纳-5个区和垃圾回收机制
  19. DP 要求将承载量花光的01背包问题
  20. Contrastive Loss (对比损失)

热门文章

  1. 谷歌翻译python接口
  2. 基于vue2.0的后管系统(配置篇)
  3. ADO.NET怎删改+vs 2013 C#
  4. thinkphp5.0 API友好
  5. 邝斌带你飞之数论专题--Maximum GCD UVA - 11827
  6. Hibernate 单项一对多的关联映射
  7. ubuntu16.04.2安装完后重启报错[sda] Assuming drive cache: write through
  8. 快速傅里叶变换(FFT)相关内容汇总
  9. 2017haoi总结
  10. pat 打印沙漏