什么是 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