【发布时间】:2021-12-06 06:14:20
【问题描述】:
目前我有这个实现,我以这种方式运行参数化 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
有没有办法将两个测试结合到一个测试中?
【问题讨论】:
-
如果您使用相同的代码,您可以将两者结合起来 - 测试是否相同?对于类型检查器,它可能是
val: Union[int, bool]... -
你没有提到你对这些值做了什么,但 Python 将
1和0视为True和False(除了0之外的任何数字都将被考虑True)。您需要提供有关您正在尝试做的事情的更多信息。 -
@MrBeanBremen 这些测试将是相同的。我正在尝试使用这 4 个值运行自定义命令并检查输出。所以需要用 int 值检查 - 1, 0 然后 bool 值 true, false
-
那么,在这种情况下,为什么不把它们放在一起,例如
@pytest.mark.parametrize('val', [True, False, 1, 0])? -
^^ 只是将所有值视为输入并在测试函数中相应地处理它们?
标签: python python-3.x pytest fixtures