我有一个基本测试用例类,它的子类应该用 flaky decorator ( https://github.com/box/flaky ) 装饰,换句话说,我想将 flaky decorator 应用于每个测试用例(测试方法),但是从基类开始,使用单个位置而不是装饰每个测试类或测试用例(有很多测试用例......)。
但是,如果我将装饰器应用于基类 CustomTestCase,它将影响每个方法(包括辅助方法、构造函数等)。是否可以将其仅应用于基类的测试用例(方法以“测试”开头)。我试图通过访问 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))
最佳答案
其实SetUp方法运行两次是没有问题的。关于辅助方法,不应重新执行。所以一切正常
关于python - 如何从基类装饰子类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45033524/