[转]nose框架与自动化测试集成

【转自】http://blog.sina.com.cn/s/blog_63041bb80101bq2o.html

学习资料

nose官网:http://readthedocs.org/docs/nose/en/latest/index.html

nose内置插件列表:http://readthedocs.org/docs/nose/en/latest/plugins/builtin.html

nose第三方插件列表:https://nose-plugins.jottit.com/

基本命令:

查看帮助:$ nosetests -h

查看已安装的插件:$ nosetests --plugins

NoseXUnit插件简介

官网:http://nosexunit.sourceforge.net/   【生成可支持Hudson使用的xml格式的测试结果】

1、Xunit安装

下载:wget http://pypi.python.org/packages/source/n/nose/nose-1.0.0.tar.gz#md5=47a4784c817afa6ef11a505b574584ed

解压:tar xzvf nose-1.0.0.tar.gz

使用root权限安装:

# su
# python setup.py install

2、单独安装XUnit插件

使用root用户登录

1) sh setuptools-0.6c11-py2.7.egg

2) easy_install nosexunit

search用户需要重新登录方可生效

3、XUnit使用

1) 可以直接在nosetests命令后面增加“ --with-xunit ” 来将结果输出到当前目录的nosetests.xml文件中,如:

nosetests --with-xunit

2) 另外,根据需要还可以使用“ --xunit-file ” 参数随意指定结果输出路径和文件名,如:

nosetests --with-xunit --xunit-file=result/test.xml

4、nosetest常用命令行参数

-w,指定一个目录运行测试。目录可以是相对路径或绝对路径。

 -s,不捕获输出,会让你的程序里面的一些命令行上的输出显示出来。例如print所输出的内容。

 -v,查看nose的运行信息和调试信息。例如会给出当前正在运行哪个测试。

Jenkins自动化测试简介

Jenkins自动化测试项目在进行“构建”时,大致的流程如下:

1、从相应的SVN路径check out程序源码,放在测试机~/.jenkins/workspace/项目名 目录下;

2、根据用户配置的Test Execution,在测试机上执行测试,并在本次执行的“命令行输出”打印相应的执行结果;

3、解析“2”中得到的测试结果(一般为JUnit test report形式),根据“Invoke Testlink”中配置的与Testlink的对应关系,将相应的测试用例的执行结果写入Testlink数据库;

4、如果配置了“Attach JUnit XML”,则将测试结果的xml文件以附件的形式上传到Testlink数据库。

注:从Jenkins导入的Testlink测试执行结果的执行人为“admin”

Trouble Shooting

1、执行nosetests错误 AttributeError: 'module' object has no attribute 'parser'

======================================================================
ERROR: test suite for
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/python/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg/nose/suite.py", line 208, in run
self.setUp()
File "/usr/local/python/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg/nose/suite.py", line 291, in setUp
self.setupContext(ancestor)
File "/usr/local/python/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg/nose/suite.py", line 314, in setupContext
try_run(context, names)
File "/usr/local/python/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg/nose/util.py", line 478, in try_run
return func()
File "/application/.../script/test_parser.py", line 26, in testcase123
parser.parser("../data/out123",1)
AttributeError: 'module' object has no attribute 'parser'

解决方法:

在parser.py所在目录下增加空文件 __init__.py

你可能感兴趣的:(python)