python 测试工具_python测试工具--nose简介

声明:

本博客欢迎转发,但请保留原作者信息!

新浪微博:@孔令贤HW;

内容系本人学习、研究和总结,如有雷同,实属荣幸!

使用python开发的估计都知道unittest,与Java中的JUnit一样,编写测试用例需要遵守一定的规则。而nose继承自unittest,且比unittest更容易使用。

1、安装

同其他python第三方组件一样,你可以尽情使用easy_install或pip,甚至是setuptools(但前提是你已经安装了它们):

easy_install nose,或者

pip install nose,或者

python setup.py install

安装后,nosetests就在你的python安装目录下的Scripts目录中。然后,你就可以使用nose了,就这么简单。

2、使用

举例说明,比如我有一个这样的目录:

先不管那个main.py,那个test目录下有一个test.py文件,内容如下,注意,这里没有unittest的任何影子:

defTestfunc():

a = 1

b = 2

asserta == b

在D:\Temp\test目录中进入命令行,执行nosetests:

一切都是自动发现和执行。

当然也可以编码实现测试用例的执行,刚才那个main.py内容如下:

importnose

nose.main()

执行之,看到返回结果是一样的:

或者,main.py中的内容也可以是如下:

importnose

result = nose.run()

printresult执行之,看到返回了True或False:

3、说明

nose会自动识别源文件,目录或包中的测试用例。任何符合正则表达式:

(?:^|[b_.-])[Tt]est

的类、函数、文件或目录,以及TestCase的子类都会被识别并执行。

当然,可以显式的指定文件、模块或函数:

nosetests only_test_this.py

nosetests test.module

nosetests another.test:TestCase.test_method

nosetests a.test:TestCase

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

如果一个对象包含了__test__属性,如果值不是True,该对象(以及它包含的所有对象)不会被nose发现

之前在nosetests参数选项中的-w,现在已经废弃,就是说,可以在nosetests的参数中直接指定多个目录,以空格分隔。

在测试用例中可以使用assert或raise

同JUnit一样,nose支持setup和teardown函数,在测试用例的前后执行。四种作用域:

1、package。可以在__init__.py中定义,setup方法名可以是setup, setup_package, setUp, or

setUpPackage,而teardown方法名可以是teardown, teardown_package, tearDown or

tearDownPackage。比如定义数据库的连接和释放。

2、module。在模块内定义setup,setup_module, setUp or setUpModule,和/或teardown,teardown_module, or tearDownModule。

3、class。

4、function。任何符合正则的函数都会被包装成FunctionTestCase,最简单的失败和成功的用例如下:

def test():

assert False

def test():

pass对于方法来说,最简单的setup和teardown是使用装饰器:

defsetup_func():

"set up test fixtures"

defteardown_func():

"tear down test fixtures"

@with_setup(setup_func, teardown_func)

deftest():

"test ..."

nose可以与setuptools无缝集成,在setup配置文件中:

setup (

#...

test_suite = 'nose.collector'

)

然后使用python setup.py test或python setup.py nosetests测试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值