预提交.配置项状态 生成状态 文档 最新的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 指南。

用户指南

插件开发人员指南

开发者指南

索引和表格