Nose 测试 - 工具



nose.tools 模块提供了一些您可能会发现有用的测试辅助工具,包括用于限制测试执行时间和测试异常的装饰器,以及 unittest.TestCase 中找到的所有相同的 assertX 方法。

  • nose.tools.ok_(expr, msg = None) − assert 的简写。

  • nose.tools.eq_(a, b, msg = None) − ‘assert a == b, “%r != %r” % (a, b)’ 的简写

  • nose.tools.make_decorator(func) − 包装测试装饰器,以便正确复制被装饰函数的元数据,包括 nose 的附加内容(即,设置和拆卸)。

  • nose.tools.raises(*exceptions) − 测试必须引发一个预期异常才能通过。

  • nose.tools.timed(limit) − 测试必须在指定的时间限制内完成才能通过

  • nose.tools.istest(func) − 装饰器,用于将函数或方法标记为测试

  • nose.tools.nottest(func) − 装饰器,用于将函数或方法标记为非测试

参数化测试

Python 的测试框架 unittest 没有简单的方法来运行参数化测试用例。换句话说,您无法轻松地从外部向 unittest.TestCase 传递参数。

但是,pytest 模块以几种良好集成的形式移植了测试参数化 -

  • pytest.fixture() 允许您在 fixture 函数级别定义参数化。

  • @pytest.mark.parametrize 允许在函数或类级别定义参数化。它为特定测试函数或类提供多个参数/fixture 集。

  • pytest_generate_tests 支持实现您自己的自定义动态参数化方案或扩展。

第三方模块 'nose-parameterized' 允许使用任何 Python 测试框架进行参数化测试。可以从此链接下载 - https://github.com/wolever/nose-parameterized

广告