• Python nose单元测试框架的安装与使用


    [本文出自天外归云的博客园]

    安装(Python2下安装)

    pip install nose

    原理与命名规则

    Nose会自动查找源文件、目录或者包中的测试用例,符合正则表达式(?:^|[_.%s-])[Tt]est,以及TestCase的子类都会被识别并执行。
    例如:我们可以将python脚本文件名以“_test”结尾或包含“_test_”,方法名以“_test”结尾。

    使用方法

    查看所有nose相关命令:
    nosetests -h
    执行并捕获输出:
    nosetests -s
    查看nose的运行信息和调试信息:
    nosetests -v9
    输出xml结果报告:
    nosetests --with-xunit
    支持测试方法传参:
    1)安装:需要下载插件“nose_ittr”:
    pip install nose_ittr

    2)脚本中使用示例:

    # -*- coding: utf-8 -*-
    import os
    from nose.tools import nottest,istest
    from nose_ittr import IttrMultiplier, ittr
    curr_dir = os.path.dirname(os.path.abspath(__file__))
    
    class TestCheckChannels(object):
        __metaclass__ = IttrMultiplier
        '''
            测试方法传入两个参数
            参数一:channels_txt_name
            参数二:check_list_txt_name
            使用方法:通过“self.参数名”进行调用
        '''
        @istest
        @ittr(channels_txt_name=["channels.txt"],check_list_txt_name=["check_list.txt"]) 
        def test_check_channels(self):
            channels_txt_path = os.path.join(curr_dir,self.channels_txt_name)
            check_list_txt_path = os.path.join(curr_dir,self.check_list_txt_name)
            the_channels = []
            with open(channels_txt_path) as channels:
                for line in channels.readlines():
                    line = line.strip()
                    if line != '':
                        the_channels.append(line)
            with open(check_list_txt_path) as check_list:
                check_items = check_list.readlines()
                for check_item in check_items:
                    if check_item.strip() in the_channels:
                        pass
                    elif check_item=='
    ':
                        pass
                    else:
                        print check_item

    3)执行示例:

    nosetests --with-html-output --html-out-file=result1.html -v --with-setup-ittr

    以上执行将输出html结果报告,但是需要先安装插件:

    1)安装:
    需要下载插件,在解压缩后在命令行中cd到该目录下:
    python setup.py install
    通过命令行安装:
    pip install nosehtmloutput-2
    pip install nose-html-reporting

    2)在待测路径打开cmd使用命令如下,就可以执行测试并生成测试结果html文件了:

    nosetests --with-html-output --html-out-file=result1.html

    工具nose.tools的使用

    1)测试脚本中引入:from nose.tools import nottest,istest;
    2)不测试的方法:方法名上加修饰器@nottest;
    3)指定为测试方法:方法名上加修饰器@istest(方法名无需符合命名规则);
    4)查看要执行的用例列表:nosetests --collect-only -v。

    测试项目

    脚本示例

    from nose.tools import nottest,istest
    from nose.tools import assert_equal
    
    class TestClass:
        def test_one(self):
            x = "this"
            assert 'h' in x
        def test_two(self):
            x = "hello"
            assert hasattr(x, 'check')
        @nottest
        def test_three(self):
            assert True
        @istest
        def xxxxx(self):
            assert True
    
    class test_haha():
        def setUp(self):
            print("============test class setup==============")
        def teardown(self):
            print("============test class teardown==============")
        def test_xxx(self):
            print "test_xxx"
            assert_equal(9, 9)
        def test_kkk(self):
            print "test_kkk"
            assert_equal(1, 1)

    测试执行

    测试结果

     
     
     
     
     
     
  • 相关阅读:
    Android的webview的设置参数
    禁止RecycleView滑动
    Volley加载不出图片的问题
    LIstview滑动时不加载图片,停止时加载!
    【原创】设计模式开篇—面向对象的软件设计
    [原创]写给自己的总结—2014到2015
    【原创】开车分四个阶段的话,你属于哪个
    【原创】亲身经历的几次合同陷阱
    【转】程序员需谨记的8条团队开发原则
    【转】绩效考核的10大误区
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/6410645.html
Copyright © 2020-2023  润新知