📜  鼻子测试-框架

📅  最后修改于: 2020-12-03 05:31:52             🧑  作者: Mango


py.test获得现代外观的第二年,鼻子项目于2005年发布。它由Jason Pellerin编写,以支持py.test所倡导的相同测试习惯用法,但采用易于安装和维护的软件包。

鼻子模块可以在pip实用程序的帮助下安装

pip install nose

这会将鼻子模块安装在当前的Python发行版中,以及鼻子测试.exe,这意味着可以使用此实用程序以及–m开关来运行测试。

C:\python>nosetests –v test_sample.py
Or
C:\python>python –m nose test_sample.py

鼻子unittest.TestCase子类中收集测试。我们还可以编写简单的测试函数,以及不是unittest.TestCase子类的测试类。鼻子还提供了许多有用的功能,用于编写定时测试,异常测试以及其他常见用例。

鼻子自动收集测试。无需手动将测试用例收集到测试套件中。运行测试是有响应的,因为鼻子在第一个测试模块加载后就开始运行测试。

与unittest模块一样,鼻子在包装,模块,类和测试用例级别支持夹具,因此可以尽可能少地进行昂贵的初始化。

基本用法

让我们考虑一下鼻子测试.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)

通过在bove命令行中使用with-doctest选项,可以将鼻子与DocTest集成。

\nosetests --with-doctest -v nosetest.py

您可以在测试脚本中使用鼻子

import nose
nose.main()

如果您不希望测试脚本在成功时以0退出,而在失败时以1退出(例如unittest.main),请使用nas.run()代替-

import nose
result = nose.run()

如果测试运行成功,则结果为true;如果测试失败或引发未捕获的异常,则结果为false。

鼻梁在包装,模块,类别和测试级别支持固定装置(设置和拆卸方法)。与py.test或unittest固定装置一样,安装程序总是在任何测试(或测试包和模块的测试集合)之前运行;如果安装成功完成,则拆解运行,无论测试运行的状态如何。