python测试框架nose研究_python测试框架之nose

此文已由作者朱奇授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验

简介

nose官方网站上对nose的定义很精炼也很准确:nose扩展自unittest,让测试更简单,是python非常好的测试框架,原文如下:

nose is nicer testing for python,nose extends unittest to make testing easier.

nose的优点

由于扩展与unittest,nose对unnitest能够很好的兼容(优于pytest),这一点很重要。

nose比unittest更容易使用上手

nose安装和使用

安装:

pip install nose

基本使用:

运行指定测试目录:

cd $file_path

nosetests

运行指定测试module:

nosetests only_test_this.py

运行指定测试case:

nosetests /path/to/test/file.py:test_function

运行时使用插件

nosetests –-plugins

test case

test case目录结构:

nose自动搜寻执行nosetests的测试目录下的moudele、package、子目录名

命名规则匹配正则表达式:((?:^|[\b_\.-])[Tt]est以及所有unittest.TestCase 的子类都会被当做测试用例

因此常用的目录结构为:

编写测试

在一个完整的test case中,主要包含3个部分:Test Fixtures、Test functions、Test Data。其中Test Fixtures是nose框架提供的主要功能,剩下的两个是根据实际测试功能编写,因此这里主要介绍Test Fixtures

Test Fixtures

在nose测试框架中setup、teardown被称为Test Fixures,它的主要目的是初始化测试用例,执行测试化用例后,对测试用例执行的结果做后期处理。setup、teardown支持package、module、class、menthod级别使用

package的setup 、teardown:放在__init__.py文件中,在整个测试的运行期间只运行一次

module的setup 、teardown:在整个测试的运行期间只运行一次。

class的setup 、teardown:每个测试方法执行时都会调用

@classmethod

def setup_class(cls):

logger.debug("setup_class: mysql connect")

GetDB = getdb.GetDB('./config.conf', webServer.MYSQL_SENSION)

cls.conn = GetDB.get_conn()

@classmethod

def teardown_class(cls):

logger.debug("teardown_class: mysql disconnect")

cls.conn.close()

测试方法的setup、teardown可以通过with_setup装饰器进行设置

@with_step(start_fuc, end_fuc)

def test_abnormal_metriclist(self, projectId, namespace, dimensionname):

mockdata = MetricListGet.MetricListGet()

mockdata.set_projectId(projectId)

mockdata.set_namespace(namespace)

mockdata.set_dimension_name(dimensionname)

resp = mockdata.get_data()

if resp.status_code != 400:

logger.error("test_normal_metriclist failed...")

assert False

更多网易技术、产品、运营经验分享请点击。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值