跳转到主要内容

一个用于过滤基于unittest测试类的pytest插件

项目描述

pytest-unittest-filter

Build Status PyPI

一个用于过滤基于unittest测试类的pytest插件

描述

pytest 默认支持基于 unittest 的测试,但有一个缺点:没有方法排除某些测试用例(unittest.TestCase 子类)不被收集。pytest 提供了 python_classes 配置选项,但如文档中所述,此选项不会影响 unittest.TestCase 子类

请注意,无论此选项如何,基于 unittest.TestCase 的类总是被收集,因为 unittest 使用自己的收集框架来收集这些测试。

对于使用内置的 unittest 测试运行器(python -m unittest)的项目来说,这可能是可以接受的,因为后者也没有任何包含/排除选项,但如果项目测试套件与 nose 测试运行器一起使用并依赖于 硬编码 的首字母下划线过滤器,可能会不方便。

该插件提供了两个新的配置选项:python_unittest_classespython_unittest_exclude_underscore

python_unittest_classes

此选项类似于上面提到的 python_classes 选项,但用于 unittest.TestCase 子类

一个或多个名称前缀或 glob 样式模式,用于确定哪些类被认为是测试收集的对象。通过在模式之间添加空格来搜索多个 glob 模式。

默认值为 none(无值),即默认情况下收集所有 unittest.TestCase 子类。

示例

  • 只包含名称以TestCheck开头的类

    [pytest]
    python_unittest_classes = Test* Check*
    

    或者

    [pytest]
    python_unittest_classes = Test Check
    
  • 只包含名称以TestCase结尾的类

    [pytest]
    python_unittest_classes = *TestCase
    
  • 排除以下划线开头的类名称

    [pytest]
    python_unittest_classes = [!_]*
    

python_unittest_exclude_underscore

这个布尔选项可以用来模拟硬编码的nose选择器行为。如果选项设置为true,则所有以_开头的类名称都将被排除。因此,上面的最后一个示例可以重写为以下内容

[pytest]
python_unittest_exclude_underscore = true

默认值为false

这两个选项可以组合使用。以下两个示例是等效的

[pytest]
python_unittest_classes = [!_]*Test [!_]*Check
[pytest]
python_unittest_classes = *Test *Check
python_unittest_exclude_underscore = true

变更日志

0.2.1 (2019-01-12)

  • 修复了将python_unittest_exclude_underscore应用于任何收集的项目(而不仅仅是unittest类)的bug

0.2.0 (2019-01-11)

  • 添加了python_unittest_exclude_underscore选项

0.1.0 (2018-10-27)

  • 初始发布

许可证

MIT许可

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

pytest-unittest-filter-0.2.1.tar.gz (4.3 kB 查看散列)

上传时间

构建分布

pytest_unittest_filter-0.2.1-py2.py3-none-any.whl (4.6 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持