预提交.配置项状态 生成状态 文档 最新的PyPI版本 支持的Python版本 加入讨论@nose2.io

欢迎来到Nose2

鼻梁2‘S伸展 unittest 让测试变得更好。

鼻子2对鼻子

nose2 起源于作为继任者的 nose

nose2 是一个不同的项目,并不支持 nose 。看见 differences 进行一次彻底的总结。

Nose2与Pytest

pytest 是一个很好的测试框架,我们鼓励用户在新项目中考虑它。

它有一个更大的维护团队和更大的用户社区。

快速启动

因为 nose2 基于UnitTest,您可以从Python标准库的 documentation for unittest 然后使用nose2在上面增加值。

nose2 在名称以开头的Python文件中查找测试 test 并运行它发现的每一个测试函数。

下面是一个用典型的UnitTest样式编写的简单测试示例:

# in test_simple.py
import unittest

class TestStrings(unittest.TestCase):
    def test_upper(self):
        self.assertEqual("spam".upper(), "SPAM")

然后您可以这样运行此测试::

$ nose2 -v
test_upper (test_simple.TestStrings) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

然而, nose2 支持更多的测试配置,并提供更多的工具 unittest 靠自己。

例如,这个测试只练习了 nose2 的功能:

# in test_fancy.py
from nose2.tools import params

@params("Sir Bedevere", "Miss Islington", "Duck")
def test_is_knight(value):
    assert value.startswith('Sir')

然后像这样运行:

$ nose2 -v --pretty-assert
test_fancy.test_is_knight:1
'Sir Bedevere' ... ok
test_fancy.test_is_knight:2
'Miss Islington' ... FAIL
test_fancy.test_is_knight:3
'Duck' ... FAIL

======================================================================
FAIL: test_fancy.test_is_knight:2
'Miss Islington'
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/mnt/ebs/home/sirosen/tmp/test_fancy.py", line 6, in test_is_knight
    assert value.startswith('Sir')
AssertionError

>>> assert value.startswith('Sir')

values:
    value = 'Miss Islington'
    value.startswith = <built-in method startswith of str object at 0x7f3c3172f430>
======================================================================
FAIL: test_fancy.test_is_knight:3
'Duck'
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/mnt/ebs/home/sirosen/tmp/test_fancy.py", line 6, in test_is_knight
    assert value.startswith('Sir')
AssertionError

>>> assert value.startswith('Sir')

values:
    value = 'Duck'
    value.startswith = <built-in method startswith of str object at 0x7f3c3172d490>
----------------------------------------------------------------------
Ran 3 tests in 0.001s

FAILED (failures=2)

完整文档

完整的文档 nose2 可在 docs.nose2.io

版本和支持

更改日志和版本方案

Nose2版本有编号 0.MAJOR.MINOR 。次要版本包含错误修复或较小的功能。在主要版本中完成了主要功能或向后不兼容的更改。

有关所有过去版本和更改的完整说明,请参阅 changelog

Python版本

Nose2需要使用Python3。

它支持CPython团队目前支持的所有版本,还旨在支持PyPy和cpythonBeta。

Python 2

不再支持Python2。这个 0.12.x line of releases 包含支持Python2的最新版本。

Python2的用户应该了解,Python2是停产的,其支持行为 nose2 同样被认为是停产。

备注

在一小段时间内,对0.12.x的修复仍然可以根据需要接受,因为只支持python3的一系列版本开始发布。

贡献

如果你想做贡献,请阅读 contributing 指南。

用户指南

插件开发人员指南

开发者指南

索引和表格