跳转到主要内容

从外部文件创建pytest参数化装饰器。

项目描述

pytest-param-files

PyPI

一个用于从外部文件生成参数化pytest的小型包。

只需创建一个具有可用格式的文本文件

dot 格式(默认)

[name1] description
.
input content
.
expected output content
.

[name2] description
.
input content
.
expected output content
.

yaml 格式

name1:
  description: optional description
  input: |-
    input content
  expected: |-
    expected output content
name2:
  description: optional description
  input: |-
    input content
  expected: |-
    expected output content

然后,使用param_file pytest标记创建一个参数化测试

from pathlib import Path
import pytest

import my_function

PATH = Path(__file__).parent.joinpath("test_file.txt")

@pytest.mark.param_file(PATH, fmt="dot")
def test_function(file_params):
    assert my_function(file_params.content) == file_params.expected

输出将是

$ pytest -v test_file.py
...
test_file.py::test_function[1-name1] PASSED
test_file.py::test_function[8-name2] FAILED

或者使用assert_expected方法,它可以处理更丰富的断言功能

@pytest.mark.param_file(PATH, fmt="dot")
def test_function(file_params):
    actual = my_function(file_params.content)
    assert file_params.assert_expected(actual, rstrip=True)
$ pytest -v test_file.py
...
test_file.py::test_function[1-name1] PASSED
test_file.py::test_function[8-name2] FAILED
...
E       AssertionError: Actual does not match expected
E       --- /path/to/test_file.txt:8
E       +++ (actual)
E       @@ -1 +1 @@
E       -content
E       +other

安装

PyPI安装

$ pip install pytest-param-files

或本地安装(用于开发)

$ pip install -e .

在失败时重新生成预期输出

使用--regen-file-failure选项运行pytest,如果任何测试失败,将重新生成参数文件并带有实际输出(如果有)。

其他格式

待办事项...

项目详情


下载文件

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

源分发

pytest_param_files-0.6.0.tar.gz (9.8 kB 查看哈希值)

上传于 源文件

构建版本

pytest_param_files-0.6.0-py3-none-any.whl (7.1 kB 查看哈希值)

上传于 Python 3

由以下支持