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

 更新时间:2017年12月20日 10:57:25   作者:天外归云  
本篇文章主要介绍了详解Python nose单元测试框架的安装与使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文介绍了Python nose单元测试框架的安装与使用 ,分享给大家,具体如下:

安装(Python2下安装)

pip install nose

原理与命名规则

Nose会自动查找源文件、目录或者包中的测试用例,符合正则表达式(?:^|[\b_\.%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=='\n':
          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)

测试执行

 

测试结果

 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python编程利用Numpy和PIL库将图片转化为手绘

    Python编程利用Numpy和PIL库将图片转化为手绘

    这篇文章主要介绍了Python编程利用Numpy和PIL库将一张图片转化为手绘风格,文中附含详细实现的示例代码,有需要的朋友可以借鉴参考下
    2021-09-09
  • Python HTTP客户端自定义Cookie实现实例

    Python HTTP客户端自定义Cookie实现实例

    这篇文章主要介绍了Python HTTP客户端自定义Cookie实现实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • Python实现新版正方系统滑动验证码识别

    Python实现新版正方系统滑动验证码识别

    这篇文章主要介绍了基于Python实现新版正方系统滑动验证码识别算法和方案,文中示例代码对我们的学习和工作有一定的帮助,感兴趣的可以了解一下
    2021-12-12
  • 如何在scrapy中捕获并处理各种异常

    如何在scrapy中捕获并处理各种异常

    这篇文章主要介绍了如何在scrapy中捕获并处理各种异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 一文教你解决所有Python中文乱码问题

    一文教你解决所有Python中文乱码问题

    我们在编写代码时总是遇到各种中文乱码的问题,所以本文就来为大家总结一下遇到的中文乱码问题和对应的解决方案,以及为什么会出现中文乱码的问题,希望对大家有所帮助
    2023-12-12
  • Python3第三方模块之Pillow模块的使用详解

    Python3第三方模块之Pillow模块的使用详解

    这篇文章主要介绍了Python3第三方模块之Pillow模块的使用详解,在 pillow之前处理图形的库莫过于PIL,但是它支持到python2.7,年久失修,于是一群志愿者在PIL的基础上常见了pillow,支持python3,又丰富和功能特性,需要的朋友可以参考下
    2023-10-10
  • Pygame实现文字显示在窗口中

    Pygame实现文字显示在窗口中

    这篇文章主要介绍了Pygame实现在窗口中显示文字,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • 教女朋友学Python3(二)简单的输入输出及内置函数查看

    教女朋友学Python3(二)简单的输入输出及内置函数查看

    这篇文章主要介绍了教女朋友学Python3(二)简单的输入输出及内置函数查看,涉及Python3简单的输入输出功能实现,以及参看内置函数的功能和用法描述的语句,具有一定参考价值,需要的朋友可了解下。
    2017-11-11
  • 只用50行Python代码爬取网络美女高清图片

    只用50行Python代码爬取网络美女高清图片

    第一次写文章,技术不成熟之处望各位大神轻喷,今天教大家只用50行Python代码爬取网络美女图片是怎么操作的,文中有非常详细的代码示例,对正在学习python的小伙伴们很有帮助哦,需要的朋友可以参考下
    2021-06-06
  • python 字符串的驻留机制及优缺点

    python 字符串的驻留机制及优缺点

    字符串驻留是一种仅保存一份相同且不可变字符串的方法。这篇文章主要介绍了python 字符串的驻留机制,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论