Python pytest参数化测试与基于unittest类的测试一起工作吗?

Python pytest参数化测试与基于unittest类的测试一起工作吗?,python,unit-testing,pytest,Python,Unit Testing,Pytest,我一直在尝试将参数化@pytest.mark.parametrize测试添加到基于类的单元测试中 class SomethingTests(unittest.TestCase): @pytest.mark.parametrize(('one', 'two'), [ (1, 2), (2, 3)]) def test_default_values(self, one, two): assert one == (two + 1) 但是参数化的东西没有

我一直在尝试将参数化
@pytest.mark.parametrize
测试添加到基于类的单元测试中

class SomethingTests(unittest.TestCase):
    @pytest.mark.parametrize(('one', 'two'), [
        (1, 2), (2, 3)])
    def test_default_values(self, one, two):
        assert one == (two + 1)
但是参数化的东西没有起作用:

我已经切换到简单的基于类的测试(没有unittest)。但我想知道是否有人尝试过,它是否有效。

根据:

unittest.TestCase方法不能直接接收fixture函数 可能会对以下能力造成影响的论点: 运行general unittest.TestCase测试套件


有一个简单的解决方法,可以使用“参数化”参数化基于unittest的Python测试:

这里有一个简单的例子。第一次安装“参数化”:
pip安装参数化==0.7.0

import unittest
from parameterized import parameterized

class MyTestClass(unittest.TestCase):

    @parameterized.expand([
        ["One", "Two"],
        ["Three", "Four"],
        ["Five", "Six"],
    ])
    def test_parameterized(self, arg1, arg2):
        print(arg1, arg2)
现在,您可以使用
pytest


我已成功地使用此技术将使用GitHub上框架的selenium浏览器测试参数化。

请注意,要使用mock,您应该在@Parameterized后面进行修饰,并且应该在args列表的末尾“收集”mock(
arg3
maybe)。我刚试过。
import unittest
from parameterized import parameterized

class MyTestClass(unittest.TestCase):

    @parameterized.expand([
        ["One", "Two"],
        ["Three", "Four"],
        ["Five", "Six"],
    ])
    def test_parameterized(self, arg1, arg2):
        print(arg1, arg2)