鼻子测试 – 框架
鼻子测试 – 框架
鼻子项目于 2005 年发布,也就是py.test获得现代外观的第二年。它由 Jason Pellerin 编写,用于支持 py.test 开创的相同测试习语,但在一个更易于安装和维护的包中。
该鼻模块可与PIP工具的帮助下安装
pip install nose
这将在当前 Python 发行版中安装nose 模块以及一个nosetest.exe,这意味着可以使用此实用程序以及使用-m 开关运行测试。
C:\python>nosetests –v test_sample.py Or C:\python>python –m nose test_sample.py
鼻子当然从unittest.TestCase子类收集测试。我们还可以编写简单的测试函数,以及不是 unittest.TestCase 子类的测试类。鼻子还提供了许多有用的功能,用于编写定时测试、异常测试和其他常见用例。
鼻子自动收集测试。无需手动将测试用例收集到测试套件中。运行测试是响应式的,因为一旦加载了第一个测试模块,鼻子就会开始运行测试。
与 unittest 模块一样,nose支持包、模块、类和测试用例级别的夹具,因此可以尽可能少地进行昂贵的初始化。
基本用法
让我们考虑与之前使用的脚本类似的 nosetest.py –
# content of nosetest.py def func(x): return x + 1 def test_answer(): assert func(3) == 5
为了运行上述测试,请使用以下命令行语法 –
C:\python>nosetests –v nosetest.py
控制台上显示的输出如下 –
nosetest.test_answer ... FAIL ================================================================ FAIL: nosetest.test_answer ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\Python34\lib\site-packages\nose\case.py", line 198, in runTest self.test(*self.arg) File "C:\Python34\nosetest.py", line 6, in test_answer assert func(3) == 5 AssertionError ---------------------------------------------------------------------- Ran 1 test in 0.000s FAILED (failures = 1)
通过在上面的命令行中使用with-doctest选项,可以将鼻子与 DocTest 集成。
\nosetests --with-doctest -v nosetest.py
您可以在测试脚本中使用鼻子–
import nose nose.main()
如果您不希望测试脚本在成功时以 0 和失败时以 1 退出(如 unittest.main),请改用nose.run() –
import nose result = nose.run()
如果测试运行成功,则结果为 true,如果失败或引发未捕获的异常,则结果为 false。
鼻子支持包、模块、类和测试级别的夹具(设置和拆卸方法)。与 py.test 或 unittest 固定装置一样,setup 总是在任何测试(或测试包和模块的测试集合)之前运行;如果安装成功完成,则拆卸运行,无论测试运行的状态如何。