我知道如何为类设置属性,但无法找到如何为文件设置..
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次测试通过'
这个问题可以在其他工作中:如何将当前文件作为对象
由于
答案 0 :(得分:0)
不是在模块命名空间中动态创建测试函数(我认为是你的意图),而是使用测试生成器的nosetest支持。
如果nose检测到一个生成器并且该生成器产生一个可调用的和任何可调用的args,它将迭代它并为你运行每个测试。
您的示例可以重写为
def check_flow_value(val):
# assert something about val
assert True
def test_flows():
flow = ['1','4','5','2']
for val in flow:
yield check_flow_value, val
鉴于此,鼻子将进行4次测试