nose 项目是于 2005 年发布的,也就是 py.test 改名后的一年。它是由 Jason Pellerin 编写的,支持与 py.test 相同的测试习惯做法,但是这个包更容易安装和维护。尽管 py.test 在某些方面有所进步,目前也很容易安装,但是 nose 仍然保持了易用性方面的声誉。支持插件扩展,兼容unittest。
1、安装
pip install nose
2、使用
a、编写简单测试用例
=======================
#### file: test.py ####
=======================
def Testfunc():
assert True
把上面的文件test.py保存到d:\目录下,然后在该目录下在命令行里执行nosetests就可以运行测试了。
或者在命令行里指定文件执行nosetests -v d:\test.py也可以允许测试。
nose会自动查找源文件、目录或者包中的测试用例,符合正则表达式(?:^|[\b_\.%s-])[Tt]est,以及TestCase的子类都会被识别并执行。
b、setUp和tearDown
nose在文件中如果找到函数setup, setup_module, setUp 或者setUpModule等,那么会在该模块的所有测试执行之前执行该函数。如果找到函数 teardown,tearDown, teardown_module或者 tearDownModule 等,那么会在该模块所有的测试执行完之后执行该函数。
执行顺序是setUpModule >setUp >func >tearDown >tearDownModule
如果需要包的setup和teardown,需要写入__init__.py文件里
c、可以把nose直接导入文件执行,不用在命令行下输入命令
import nose
def TestFunc():
assert True
if __name__ =='__main__':
nose.main()
d、nosetest常用的命令行参数
这里只重点介绍几个常用的,其它的参数可以通过nosetests -h进行查看。
a) -w ,指定一个目录运行测试。目录可以是相对路径或绝对路径。
例如: nosetest -w c:\pythonTests\Test1,只运行目录c:\pythonTests\Test1下的测试。可以指定多个目录,例如: nosetest -w c:\pythonTests\Test1 -w c:\pythonTests\Test2。
b)-s,不捕获输出,会让你的程序里面的一些命令行上的输出显示出来。例如print所输出的内容。
c)-v,查看nose的运行信息和调试信息。例如会给出当前正在运行哪个测试。
d)-p,打印安装的插件