Python测试模块——nose

以下内容翻译自nose官方文档,因为水平有限,难免会有错误。。。。

nose是Python平台的一个测试工具,相信用Python开发过的人都知道unittest,nose比unittest更加强大,也更加好用(注:我没有用过unittest。。。我还是小白。。。。)

nose使用的tests是unittest.TestCase的子类,当然你也可以自己写一些简单的测试函数以及测试类,而不一定要是unittest.TestCase的子类。

使用nose运行测试是很简单的,只要遵循简单规则来组织你的库和代码;设置测试环境是简单的;nose有非常多内建的插件来帮助你捕捉输出,错误信息等,当然如果你不喜欢默认的这些收集方案也可以自己来写插件。

基本使用方法:

nosetests [options] [(optional) test files or directories]

或是在家目录下写一个.noserc的配置文件(或是在项目目录下新建一个setup.cfg文件):

[nosetests]
verbosity=3
with-doctest=1

如果想禁用配置文件,就设置一个环境变量参数:NOSE_IGNORE_CONFIG_FILES。

nose自动从Python源文件,目录和包中收集测试,任何匹配正则表达式(默认为:(?:^|[b_.-])[Tt]est)的源文件,目录和包都会被搜集用作测试。包的话会沿着“树”向下进行寻找满足条件的用作测试。在一个测试目录或包中,任何匹配testMatch的Python源文件都会被检查用作测试例子。在一个模块中,名字匹配testMatch的函数和类和TestCase的子类都会被用作测试。Tests会产生一个AssertError来显示错误。这里有一个需要注意的地方:nose默认情况下并不测试那些拥有可执行权限的文件。要测试这样的文件要么去掉‘x’位,要么使用-exec选项。

nosetests filename or module

nosetests后可以直接跟目录表示nosetests的工作目录。

使用插件:nosetests --plugins:显示已安装的插件,-v,-vv显示插件的详细信息。

更多关于nosetests的选项内容请查看官网。。。

test package:nose允许把tests都放进一个测试包中,这样就是以包为单位进行测试。每一次测试运行都可以在包中创建或是从包中移除tests,而不需要对test模块或test例子进行单独的测试运行。为了实现这个“包层次”的测试方法,将setup和teardown函数(简单的来说就是前者是在测试前运行的,后者是在测试后运行的)放进__init__.py文件中。setup方法可以命名为setup, setup_package, setUp, or setUpPackage;teardown方法可以命名为teardown, teardown_package, tearDown or tearDownPackage。只要第一个test module载入到test package中就开始测试。

test module:test module是一个匹配testMatch正则表达式的模块,可以命名为setup, setup_module, setUp or setUpModule for setup, teardown, teardown_module,
or tearDownModule for teardown。在一个test module中搜索tests都收集完后再执行测试。

test class:test class是一个在test module中匹配testMatch正则表达式的类或是unittest.TestCase的子类。所有测试类都以同样的方法运行:匹配testMatch正则表达式的方法被找到后,通过创建test class的一个新的实例来测试每一个方法。类层次的装饰器可以命名为setup_class, setupClass, setUpClass, setupAll or setUpAll; teardown fixtures may be
named teardown_class, teardownClass, tearDownClass, teardownAll or tearDownAll.

test function:任何在一个test module中的函数都会被包装成一个FunctionTestCase,然后运行测试。test function可以定义setup/teardown属性。如果在同一个test module中有多个需要进行同一setup/teardown的函数,可以使用with_setup装饰器。

def setup_func():
    ....

def teardown_func():
    .....

@with_setup(setup_func,teardown_func)
def test():
    "test..."

注:with_setup只可以用于函数,不能用于test class中的test method。在那些情况下,请定义setup和teardown方法。

test generator:setup和teardown可以用于生成器函数,不过需要注意的是,如果setup和teardown是被附加到生成器函数的,那么它们就只会执行一次,也就是说以后在返回生成器继续的运行的时候不会执行它们,为了对每一次yield的值进行测试,可以将其附加到yield的函数上。

更多关于nose的插件详情及源码请看官网文档。。。。

时间: 2024-10-02 14:23:41

Python测试模块——nose的相关文章

Python测试工具——nose

1.nose 特点: a)         自动发现测试用例(包含[Tt]est文件以及文件包中包含test的函数) b)         以test开头的文件 c)         以test开头的函数或方法 d)         以Test开头的类 nose自动收集单元测试,会自动识别源代码文件.目录或包中的测试用例,任何符合正则表达式:(?:^|[b_.-])[Tt]est的类.函数.文件或目录,以及TestCase的子类都会被识别并执行,匹配成功的包.任何python的源文件都会被当做测

python测试模块-pytest介绍

1.pytest介绍 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. 它具有如下特点: ?非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 ?能够支持简单的单元测试和复杂的功能测试 ?支持参数化 ?执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败 ?支持重复执行失败的case ?支持运行由nose, unittest编写的测试case ?具有很多第三方插件,并且

python测试框架nose(一)

nose可以理解为是uittest扩张,不是pyhton自带框架,需要通过pip安装,结合allure框架,达到测试报告更加美观 a.通过pip安装 b.测试是否安装成功,通过输入  nosetests 命令 c.第一个demo: import nose def test_demo1(): print 'I am demo1' def test_demo2(): print 'I am demo2' if __name__ == '__main__': nose.main() 通过打开执行窗口,

python测试框架--nose

最近再浏览Python自动化测试框架,之前接触过unittest,看了篇文章,发现nose貌似更牛逼一些,于是安装试了试,分享一下心得. nose 项目是于 2005 年发布的,也就是 py.test 改名后的一年.它是由 Jason Pellerin 编写的,支持与 py.test 相同的测试习惯做法,但是这个包更容易安装和维护.尽管 py.test 在某些方面有所进步,目前也很容易安装,但是 nose 仍然保持了易用性方面的声誉. 首先安装nose,当然前提是已经安装部署完成python,从

python中关于不执行if __name__ == '__main__':测试模块的解决

1.新建测试脚本文件: 2.编辑测试脚本 import unittest import requests import json import HTMLTestRunner ur1 = 'http://118.178.247.67:8081/systLogonUser/adminLogon.do' headers = {'Content-Type':'application/x-www-form-urlencoded','Referer':'118.178.247.67'} data = { '

python 各模块

01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支持模块 12 _ _builtin_ _ 模块 121 使用元组或字典中的参数调用函数 1211 Example 1-1 使用 apply 函数 1212 Example 1-2 使用 apply 函数传递关键字参数 1213 Example 1-3 使用 apply 函数调用基类的构造函数 122

转 python测试框架最全资源汇总

转自: http://www.testclass.net/list/python_list_1/ xUnit frameworks(单元测试框架) frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本 pytest - 成熟且功能强大的单元测试框架 plugincompat - pytest的执行及兼容性插件 nosetests - 让python测试更容易一点 slash 

python测试框架&&数据生成&&工具最全资源汇总

xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本pytest - 成熟且功能强大的单元测试框架plugincompat - pytest的执行及兼容性插件nosetests - 让python测试更容易一点slash - python实现的单元测试框架 extensions 扩展proboscis - 仿TestNG扩展了unit

Python测试框架之unittest和pytest

目前搜狗商城接口测试框架用的是unittest+HTMLTestRunner,case数有1097条,目前运行一次自动化测试,时长约为30分钟,期望控制在10分钟或者更短的时间内.近期打算重新优化框架,着重解决运行效率低的问题.最近调研了一下另一种主流测试框架Pytest,Pytest是一个非常成熟的全功能的Python测试框架,本文主要对比了Unittest和Pytest这两种较为流行的Python测试框架. 一.Unittest Unittest是Python标准库中自带的单元测试框架,Un