python测试工具--nose简介
2013-07-24 09:06
489 查看
声明:
本博客欢迎转发,但请保留原作者信息!
新浪微博:@孔令贤HW;
博客地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!
使用python开发的估计都知道unittest,与Java中的JUnit一样,编写测试用例需要遵守一定的规则。而nose继承自unittest,且比unittest更容易使用。
官网:https://nose.readthedocs.org/en/latest/index.html
easy_install nose,或者
pip install nose,或者
python setup.py install
安装后,nosetests就在你的python安装目录下的Scripts目录中。然后,你就可以使用nose了,就这么简单。
先不管那个main.py,那个test目录下有一个test.py文件,内容如下,注意,这里没有unittest的任何影子:
在D:\Temp\test目录中进入命令行,执行nosetests:
一切都是自动发现和执行。
当然也可以编码实现测试用例的执行,刚才那个main.py内容如下:
执行之,看到返回结果是一样的:
或者,main.py中的内容也可以是如下:
的类、函数、文件或目录,以及TestCase的子类都会被识别并执行。
当然,可以显式的指定文件、模块或函数:
如果一个对象包含了__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,最简单的失败和成功的用例如下:
nose.tools提供了一些帮助函数,参见https://nose.readthedocs.org/en/latest/testing_tools.html
nose可以与setuptools无缝集成,在setup配置文件中:
然后使用python setup.py test或python setup.py nosetests测试。
本博客欢迎转发,但请保留原作者信息!
新浪微博:@孔令贤HW;
博客地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!
使用python开发的估计都知道unittest,与Java中的JUnit一样,编写测试用例需要遵守一定的规则。而nose继承自unittest,且比unittest更容易使用。
官网:https://nose.readthedocs.org/en/latest/index.html
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的任何影子:
def Testfunc(): a = 1 b = 2 assert a == b
在D:\Temp\test目录中进入命令行,执行nosetests:
一切都是自动发现和执行。
当然也可以编码实现测试用例的执行,刚才那个main.py内容如下:
import nose nose.main()
执行之,看到返回结果是一样的:
或者,main.py中的内容也可以是如下:
import nose result = nose.run() print result执行之,看到返回了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是使用装饰器:
def setup_func(): "set up test fixtures" def teardown_func(): "tear down test fixtures" @with_setup(setup_func, teardown_func) def test(): "test ..."
nose.tools提供了一些帮助函数,参见https://nose.readthedocs.org/en/latest/testing_tools.html
nose可以与setuptools无缝集成,在setup配置文件中:
setup ( #... test_suite = 'nose.collector' )
然后使用python setup.py test或python setup.py nosetests测试。
相关文章推荐
- python测试工具--nose简介
- Python 各种测试框架简介(三):nose
- Python自动化测试工具Splinter简介和使用实例
- Python自动化测试工具Splinter简介和使用实例
- 基于python3在nose测试框架的基础上添加测试数据驱动工具
- Python 性能测试工具 locust 简介
- Python 性能测试工具 locust 简介
- Python自动化测试工具Splinter简介和使用实例
- Python自动化测试工具Splinter简介和使用实例
- python+selenium+nose web简单自动化测试框架
- Apache自带压力测试工具ab用法简介
- 用python做自动化测试--实现高性能测试工具(3)-- 优化系统架构
- 测试工具-loadrunner简介
- Python 基础爬虫简介(测试环境为 Python 2.7)
- Android自动化测试工具简介
- 测试效率优化案例----多国语言自动化校验工具(python)
- sysbench压力测试工具简介和使用(二)
- linux下的内核测试工具——perf使用简介