【发布时间】:2012-10-21 10:05:30
【问题描述】:
我知道如何为类设置属性,但找不到如何为文件设置..
flow = ['1','4','5','2']
def test_generator(test):
def test_parser(self):
print test
return test_parser
class API_tests(unittest.TestCase):
pass
for test in flow:
test_name = 'test_%s' % test
test = test_generator(test)
setattr(API_tests, test_name, test)
这个,会起作用的。
我想将 setattr() 上的 API_tests 替换为作为对象而不是类的文件,以便该文件将附加我动态设置的函数 (test_generator X 4)
我在命令行上运行“nosetests -v”时的预期结果是它会显示“4 个测试通过”
这个问题可以在其他作品中:如何将当前文件作为对象获取
谢谢
【问题讨论】:
-
当前文件名在
__file__。然而,那是一个字符串。 -
您是否打算创建可以运行nosetest 的X(本例中为4 个)测试?如果是这样,请查看测试生成器的鼻子测试支持。简而言之,编写一个产生可调用对象和可调用对象所需参数的生成器。鼻子会为你运行它们。
-
在这里您可以找到如何在当前模块中设置属性(我认为这是您实际要求的):How do I call setattr() on the current module?。