如何在UnitTest中参数化测试用例和设置

时间:2021-07-27 13:46:28

标签: python python-unittest

大家。 我有 2 个装置和 2 个测试用例。 这是我将它们粘合在一起的想法(以避免编写 4 个单独的测试用例):

from unittest import TestCase


class TypeAFixture:
    def setUp(self):
        print("\nSetting up type A")


class TypeBFixture:
    def setUp(self):
        print("\nSetting up type B")


class Scenario:
    def test_case_1(self):
        print("testing Case 1")

    def test_case_2(self):
        print("testing Case 2")


class TestA(TypeAFixture, Scenario, TestCase):
    pass


class TestB(TypeBFixture, Scenario, TestCase):
    pass

按预期工作,输出如下(我使用 pytest 运行它):

main.py::TestA::test_case_1 
Setting up type A
testing Case 1
PASSED
main.py::TestA::test_case_2 
Setting up type A
testing Case 2
PASSED
main.py::TestB::test_case_1 
Setting up type B
testing Case 1
PASSED
main.py::TestB::test_case_2 
Setting up type B
testing Case 2
PASSED

问题是 - 我需要对此进行扩展并对两个 setUp 实施额外的参数化。 我尝试了不同的方法(使用 subTest,为固定装置提供额外的参数等),但到目前为止似乎没有任何效果。 我期待以下输出:

main.py::TestA::test_case_1 
Setting up type A
Setting up param X
testing Case 1
PASSED
main.py::TestA::test_case_2 
Setting up type A
Setting up param Y
testing Case 2
PASSED
main.py::TestB::test_case_1 
Setting up type B
Setting up param X
testing Case 1
PASSED
main.py::TestB::test_case_2 
Setting up type B
Setting up param Y
testing Case 2
PASSED

实现这一点的正确方法是什么?任何建议将不胜感激。

0 个答案:

没有答案