如何从基类中装饰子clases方法?

时间:2017-07-11 11:39:39

标签: python unit-testing

我有基础测试用例类,哪些子类应该用片状装饰器(https://github.com/box/flaky)进行装饰,换句话说,我想对每个测试用例(测试方法)应用片状装饰器,但是从一个基类,使用单个位置而不是装饰每个测试类或测试用例(有大量的测试用例......)。

但是如果我将decorator应用于基类CustomTestCase,它将影响每个方法(包括辅助方法,构造函数等)。是否可以从基类将其应用于测试用例(方法以'test'开头)。我试过通过访问CustomTestCase.setUp中的self._testMethod而没有成功。

# base class
@flaky(max_runs=3, min_passes=1)
class CustomTestCase(SimpleTestCase):
    """
    base class for tests using Selenium.
    """
    @classmethod
    def setUpClass(cls):
        pass

    def setUp(self):
        pass


# child class - test suite
class TestSomething(CustomTestCase):
    """
    This class contains all different tests
    """
    def test_something(self):
        """ should be decorated by flaky """
        self.assertEqual(1, randint(0, 1))

    def test_another(self):
        self.assertEqual(1, randint(0, 1))

1 个答案:

答案 0 :(得分:0)

实际上,当SetUp方法运行两次时,这不是问题。关于帮助方法,不应该重新执行。所以一切都很好