Nose-1-入门

145 阅读2分钟

「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。

什么是 nose

nose 是一个超轻量化的,超简单的一个开箱即用的单元测试框架。如果你讨厌使用类,那么建议你使用 nose 或者 pytest,当然 nosepytest 也是支持类的,只是他们都可以支持以 test 打头的文件和方法以及类。因为大名鼎鼎的 unittest 是基于类的测试框架。

nose 的特点

  1. 自动发现测试用例(包含[Tt]est 文件以及文件夹中包含 test 的函数)
  2. test 开头的文件
  3. test 开头的函数或方法
  4. Test 开头的类

怎么安装 nose

pip install nose

例子

单元测试代码:

def test_add():    
    assert 1+1 == 2

执行测试:

PS C:> nosetests .
.----------------------------------------------------------------------
Ran 1 test in 0.005sOK

可以看到:nosetests 后面跟上一个测试项目路径即可执行测试,测试结果为执行了一条测试,耗时 0.005 秒。项目的最终测试结果为 OK,即通过。

展示用例名等信息

使用参数:-v(展示详细程度为 2 的信息)
执行测试:

PS C:> nosetests -v .
test_01.test_add ... ok----------------------------------------------------------------------
Ran 1 test in 0.003sOK

使用参数:--verbosity(设置详细程度的参数)
执行测试(详细级别为 2):

PS C:> nosetests --verbosity=2 .
test_01.test_add ... ok----------------------------------------------------------------------
Ran 1 test in 0.002sOK

执行测试(详细级别为 3):

PS C:> nosetests --verbosity=3 .
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
test_01.test_add ... ok
----------------------------------------------------------------------
Ran 1 test in 0.004sOK

可以看到:-v 的测试结果详细程度和--verbosity=2 时的结果详细程度一致。--verbosity=3 时的测试结果包含了一些 INFO 的日志,--verbosity=4 时的测试结果会包含更多的 DEBUG 信息(因为内容太多,所以文中不再展示)。

常用的命令

命令&参数解释
nosetests –h查看所有 nose 相关命令
nosetests –s执行并捕获输出
nosetests –with-xunit输出 xml 结果报告
nosetests -v查看 nose 的运行信息和调试信息
nosetests -w目录:指定一个目录运行测试

更多关于 nose 的用法可以参考官方文档:

https://nose.readthedocs.io/en/latest/usage.html#extended-usage