我有一个夹具,它返回一个pd.DataFrame
. 我需要将各个列 ( pd.Series
) 插入到单元测试中,并且我想使用parametrize
.
这是一个没有parametrize
. 数据框的每一列都将单独测试。但是,我想我可以摆脱input_series
固定装置,不是吗?使用此代码,只会执行 1 个测试。但是,我正在寻找 3 个测试,同时摆脱 for 循环。
import numpy as np
import pandas as pd
import pytest
@pytest.fixture(scope="module")
def input_df():
return pd.DataFrame(
data=np.random.randint(1, 10, (5, 3)), columns=["col1", "col2", "col3"]
)
@pytest.fixture(scope="module")
def input_series(input_df):
return [input_df[series] for series in input_df.columns]
def test_individual_column(input_series):
for series in input_series:
assert len(series) == 5
我基本上在寻找这样的东西:
@pytest.mark.parametrize("series", individual_series_from_input_df)
def test_individual_column(series):
assert len(series) == 5