zoukankan      html  css  js  c++  java
  • python nose测试框架全面介绍十---用例的跳过

      又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细。下面详细解析下

    nose自带的SkipTest

       先看看nose自带的SkipTest典型应用

       应用一:

    ‘''
    @auth:hu
    ’''
    from nose.plugins.skip import SkipTest
    @attr(mode=1) 
    def test_learn_1():
        raise SkipTest

    但这种SkipTest在实际的日志中没有显示Skip关键字

    应用二:

    如果想要在执行用例前判断相关字雄姿英发再进行用例跳过,如下

    '''
    
    @author: huzq
    '''
    import nose
    import  nose.plugins.multiprocess
    from testtools import TestCase
    from nose import SkipTest
    from nose.plugins.skip import Skip
    import unittest
    
    
    class TestClass():
     
        
        
        
        def setUp(self):
            print "MyTestClass setup"
            if "xxx" in "qqqq":
                raise SkipTest("adfdfd")
            
    
       
        def Testfunc1(self):
            print "this is Testfunc01"
            

    每个用例前都会进行判断,并进行跳过操作

    应用三:

    可用觉得写在代码中太麻烦,SkipTest也可以当装饰器来进行,如下

    '''
    @author: huzq
    '''
    import nose
    import  nose.plugins.multiprocess
    from testtools import TestCase
    from nose import SkipTest
    from nose.plugins.skip import Skip
    import unittest
    
    
    class TestClass():
      
        
        @classmethod
        def setUpClass(self):
            print "xxxxxx"
    
        
        def setUp(self):
            print "MyTestClass setup"
            
    
        def tearDown(self):
            print "MyTestClass teardown"
            
        @SkipTest
        def Testfunc1(self):
            print "this is Testfunc01"
            

    要注意的时,如果用装饰器形式,SkipTest后不能接具体原因,如果要接具体原因,只能用unittest的方法写,如下

    @unittest.skip("I don't want to run this case.")

    SkipTest可放在SetUpclass、SetUp、Test中

    使用unittest的skip


    什么都是没有完美的,如果想用装饰器来进行用例判断并跳过,nose自带的skiptest没法完成。好在unittest有更好的解决方案。

    就直接贴官网的例子吧,nose也支持 

    class MyTestCase(unittest.TestCase):
    
        @unittest.skip("demonstrating skipping")
        def test_nothing(self):
            self.fail("shouldn't happen")
    
        @unittest.skipIf(mylib.__version__ < (1, 3),
                         "not supported in this library version")
        def test_format(self):
            # Tests that work for only a certain version of the library.
            pass
    
        @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
        def test_windows_support(self):
            # windows specific testing code
            pass
  • 相关阅读:
    2所非211院校挺进全球高校600强,甩开一众985 | 泰晤士世界大学排行榜出炉
    深度强化学习专栏(三)
    PyTorch专栏(八):微调基于torchvision 0.3的目标检测模型
    PyTorch专栏(六): 混合前端的seq2seq模型部署
    3分钟了解GPT Bert与XLNet的差异
    PyTorch专栏(五):迁移学习
    NLPer,你知道最近很火的自然语言处理库么?
    E
    网络流 I
    D
  • 原文地址:https://www.cnblogs.com/landhu/p/9200969.html
Copyright © 2011-2022 走看看