「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。
什么是 nose
nose 是一个超轻量化的,超简单的一个开箱即用的单元测试框架。如果你讨厌使用类,那么建议你使用 nose 或者 pytest,当然 nose 和 pytest 也是支持类的,只是他们都可以支持以 test 打头的文件和方法以及类。因为大名鼎鼎的 unittest 是基于类的测试框架。
nose 的特点
- 自动发现测试用例(包含
[Tt]est文件以及文件夹中包含test的函数) - 以
test开头的文件 - 以
test开头的函数或方法 - 以
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