1

我有以下测试代码:

类TestMyCode(unittest.TestCase):@pytest.mark.parametrize(“项目”,[5,4,10])定义测试有效范围(自身,项目):self.assertTrue(1<=项<=1000)

这不是我真正的测试,这只是一个最小的重现示例。

我只需要参数化根据相同代码检查的输入。

由于某些原因,这不起作用,我总是得到:

TypeError:test_valid_range()缺少1个必需的位置参数:“item”

我怎样才能修好它?

4
  • @pytest.mark.parametrize(“项目”,[(5,),(4,),[(10,)])也许可以工作(没有时间自己测试atm) 评论 2021年9月24日13:14
  • @AndrewAllaire否,相同错误 评论 2021年9月24日13:15
  • 1
    等一下。。。你把unittest和pytest混在一起了?我不知道有人能做到这一点。 评论 2021年9月24日13:17
  • @你不能:-)至少不能这样。 评论 2021年9月24日13:19

1答案1

重置为默认值
2

你不能使用@pytest.mark.参数化单元测试。TestCase方法.PyTest无法传入参数。

只要做:

@pytest.mark.parametrize(“项目”,[5,4,10])定义测试有效范围(项):self.assertTrue(1<=项<=1000)
2
  • 我在课堂上还有很多其他的测试,其中有我不想接触的设置和内容。所以如果我需要参数化,我需要使用pypi.org/project/parameterized(pypi.org/项目/参数化)?
    – 斯拉瓦
    评论 2021年9月24日13:20
  • @斯拉瓦如果你已经在用鼻子测试了,当然。否则,最好不要参数化测试,只在测试函数中对所有参数进行循环。如果需要为每个参数值运行setUp,那么它会变得很复杂。 评论 2021年9月24日13:23

你的答案

点击“发布您的答案”,即表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.