从外部文件创建pytest参数化装饰器。
项目描述
pytest-param-files
一个用于从外部文件生成参数化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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ab02608d63f7baf14483682ee6213c9330401f2a14d7a63489b872f6830a9848 |
|
MD5 | cd9cc2b0c83e6d7bd98202459da2c884 |
|
BLAKE2b-256 | f754023b260066b36cc8ebd42c52c7c65b94110c4a1abb08d0edf7eac71e21a5 |
关闭
pytest_param_files-0.6.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d24095dbc98bdc1e1d8236c0e01237c8a3dc3e3e7742e0f552304c4073691251 |
|
MD5 | c0ca8023f1c2e2347d8d3068869f1e20 |
|
BLAKE2b-256 | 460993188af48b8dcd7c615bf32c4e248fc096ea826ae0e9bfd3f65acc9de826 |