我有一个Python模块测试系统中各个模块调用类似:查找其他模块(蟒蛇)定义的变量
class Hello(object):
_DOC_ATTR = { 'greeting': '''
a greeting message.
>>> h = Hello()
>>> h.greeting = 'hi there'
>>> h.greeting
'hi there'
''' }
def __init__(self):
self.greeting = "hello"
class Test(unittest.TestCase):
# tests here
if __name__ == '__main__':
import tester
tester.test(Test)
内mainTest,我跑在试验测试与"__main__"
一个文档测试一起。这工作很好,并且长时间工作良好。我们专用的_DOC_ATTR字典在我们构建到狮身人面像时记录函数的各个属性。但是,本字典中的文档不会被调用。我想要做的是在tester.test()
之内对每个类的_DOC_ATTR中的值运行doctests。
我遇到的问题是试图在tester.test()
中找到一种方法来找出在__main__
中定义的所有变量(特别是类)。我试过看traceback
中的相关地方无济于事。我以为是因为我从__main__
,即__main__.Test
,我可以使用.__module__
Test
访问本地变量,但我不知道如何去做。
我宁愿不需要改变对tester.test(Test)
的调用,因为它在数百个模块中使用,并且我已经训练了所有在项目上工作的程序员遵循这个范例。谢谢你的帮助!