所以我试图实现类似于单元测试框架如何做以下事情的东西:
class BaseTest(T.TestCase):
# Disables this test from being run
__test__ = False
def test_foo(self): pass
# However this test is picked up because it doesn't directly have __test__ set
class InheritingTest(BaseTest): pass
我觉得很奇怪的一点:
# >> InheritingTest.__test__
# False
这向我表明它没有使用元类来设置 类型__test__
的True
构造。
我尝试通过 python 库搜索find . -name "*.py" | xargs grep '__test__'
,但似乎没有找到与此相关的任何内容。
我解决这个问题的“猜测”方法是执行以下操作:
def is_class_tested(cls):
return cls.__dict__.get('__test__', True)
然而,这对我来说感觉很脆弱......有没有一种更清洁/更好的方法可以在所有情况下都有效?有没有可能一个类没有__dict__
属性?