• nose的setup和teardown


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

    1、模块的setUp和tearDown

     1     def setUp():  
     2         print "function setup"  
     3       
     4     def tearDown():  
     5         print "function teardown"  
     6           
     7     def Testfunc1():  
     8         print "Testfunc1"  
     9         assert True  
    10       
    11     def Testfunc2():  
    12         print "Testfunc2"  
    13         assert True  

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

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

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

    2、测试函数的setUp和tearDown   可能会想给每个函数单独指定类似的setUp和tearDown函数,可以如

     1 def setUp():  
     2      print "function setup"  
     3   
     4  def tearDown():  
     5     print "function teardown"  
     6   
     7 def func1Start():  
     8     print "func1 start"  
     9   
    10 def func1End():  
    11     print "func1 end"  
    12   
    13 def func2Start():  
    14     print "func2 start"  
    15   
    16 def func2End():  
    17     print "func2 end"  
    18      
    19 def Testfunc1():  
    20     print "Testfunc1"  
    21     assert True  
    22   
    23 def Testfunc2():  
    24     print "Testfunc2"  
    25     assert True  
    26   
    27 Testfunc1.setup = func1Start  
    28 Testfunc1.tearDown = func1End  
    29 Testfunc2.setup = func2Start  
    30 Testfunc2.tearDown = func2End 

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

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

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

    3、测试类的的setUp和tearDown

      看如下的代码:

     1 class TestClass():  
     2     arr1 = 2  
     3     arr2 = 2  
     4      
     5     def setUp(self):  
     6         self.arr1 = 1  
     7         self.arr2 = 3  
     8         print "MyTestClass setup"  
     9   
    10     def tearDown(self):  
    11         print "MyTestClass teardown"  
    12          
    13     def Testfunc1(self):  
    14         assert self.arr1 == self.arr2  
    15      
    16     def Testfunc2(self):  
    17         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。比如定义数据库的连接和释放。

  • 相关阅读:
    Div+Css布局教程(-)CSS必备知识
    html表格设置
    wxAui Frame Management用法
    aui
    MySQL死锁
    InnoDB索引存储结构
    MySQL事务调优
    MySQL慢SQL语句常见诱因
    InnoDB的LRU淘汰策略
    InnoDB事务之redo log工作原理
  • 原文地址:https://www.cnblogs.com/shengulong/p/6688925.html
Copyright © 2020-2023  润新知