python - 使用 pytest 为夹具提供默认参数化
问题描述
我不想为一堆测试参数化同一组参数。
每当我使用夹具时,我也想使用“默认参数化”。那些“默认参数化”
@pytest.mark.parametrize
在代码中意味着更少。在某些情况下,将测试分组到一个类中并对整个测试类进行参数化会有所帮助。但是我有几种固定装置的组合。
如何将“默认参数化”设置为夹具?一些固定装置是具有多个参数的类。
我目前的解决方案很乏味:
import pytest
import itertools
class A:
def __init__(self, x, y):
self.x = x
self.y = y
def big_data():
return [1, 2, 3]
@pytest.fixture(
params=itertools.product(big_data(), [True, False])
)
def a(request):
return A(*request.param)
def test_1(a):
int(a.x + a.y)
@pytest.mark.parametrize("v", [10, 100])
def test_2(a, v):
assert (a.x < v) or a.y
解决方案
推荐阅读
- apostrophe-cms - 如何使 Apostrophe CMS 中的表单提交无效?
- sql - 如何循环和输出原始值
- java - 如何使用 JClouds 明确指定 S3 区域?
- django-models - 如何从在 Django 模型中扩展它的模型自动创建用户
- mysql - 不同的列给出不正确的结果
- express - 无法将数据从自定义预处理程序中间件传递到 _app.js
- python - AWS CDK 日志记录 - cdk 部署后,我收到错误消息:props.destination.bind 不是函数
- azure - 如何通过 ARM 模板在 StorageAccount 中设置选定的网络
- html - HTML/CSS 需要帮助在两个元素之间创建下划线
- java - 在数据库的第一个添加新项目(位置 0)