python - 如何从基类装饰子类方法?

标签 python unit-testing

我有一个基本测试用例类,它的子类应该用 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/

相关文章:

python - 如何使用 python/pandas 计算列中相同的连续值的数量?

Python 将行转换为数组

python - 模拟 Googleads 进行单元测试

python - 是否有一种python方式从列表或numpy数组中采样N个连续元素

python - 从位图字体图像中提取字形数据的工具

java - 是否有兴趣在单元测试中测试基本增量?

Angular Testing : mock a HttpResponse containing a blob

python - 使用 Python 请求和响应模拟文件下载

python - 根据请求方法应用装饰器

php - AspectMock 似乎没有模拟静态方法