有没有办法在同一个测试中参数化具有多种数据类型的pytest?
Is there a way to parameterize a pytest with multiple data types in a same test?
目前我有这个实现运行 参数化的 pytest 是这样的:
@pytest.mark.parametrize('int_val', [1, 0])
def test_int_val(self, int_val: int):
# performs all the steps
和 运行 以这种方式使用布尔值进行相同的测试:
@pytest.mark.parametrize('bool_val', [True, False])
def test_bool_val(self, bool_val: int):
# performs all the steps
有没有办法在 1 个测试中合并这两个测试?
执行以下操作:
@pytest.mark.parametrize('bool_val', [True, False, 1, 0])
def test_bool(bool_val):
print(f"VAL: {bool_val}")
# your code
打印这个:
tests/tests_temp.py::test_bool[True] VAL: True
PASSED
tests/tests_temp.py::test_bool[False] VAL: False
PASSED
tests/tests_temp.py::test_bool[1] VAL: 1
PASSED
tests/tests_temp.py::test_bool[0] VAL: 0
PASSED
编辑:根据 OP 的评论
目前我有这个实现运行 参数化的 pytest 是这样的:
@pytest.mark.parametrize('int_val', [1, 0])
def test_int_val(self, int_val: int):
# performs all the steps
和 运行 以这种方式使用布尔值进行相同的测试:
@pytest.mark.parametrize('bool_val', [True, False])
def test_bool_val(self, bool_val: int):
# performs all the steps
有没有办法在 1 个测试中合并这两个测试?
执行以下操作:
@pytest.mark.parametrize('bool_val', [True, False, 1, 0])
def test_bool(bool_val):
print(f"VAL: {bool_val}")
# your code
打印这个:
tests/tests_temp.py::test_bool[True] VAL: True
PASSED
tests/tests_temp.py::test_bool[False] VAL: False
PASSED
tests/tests_temp.py::test_bool[1] VAL: 1
PASSED
tests/tests_temp.py::test_bool[0] VAL: 0
PASSED
编辑:根据 OP 的评论