我有一些在CLI中使用配置文件运行的python脚本。测试脚本的所有内容都在“ABC”类中。以独立脚本和鼻子测试的方式运行python脚本
在ABC类的init中,我传递了在脚本中使用的配置文件。
所以,当我跑我的Python脚本独立的,我会说“蟒蛇script_one.py -c的config.cfg”
现在的问题是,我需要运行使用nosetests目录中的所有蟒蛇测试。鼻子测试库不喜欢这样的事实,即我在ABC类的init()中传递“config”。
我需要一种运行python的方式,如上面提到的那样用config和nosetests。
我切换到在Python configparser模块用来,它解析配置文件和我没有给他们传递给INIT()
class TestMe(object):
def __init__(self):
config = ConfigParser.ConfigParser()
config.read(file)
配置文件在主()被引用:
if __name__ == '__main__':
#config = c.parse_config()
#test = TestMe(config)
file = "configs/test_config.yaml"
print "inside main..."
config = ConfigParser.ConfigParser()
config.read(file)
如果配置= c.parse_config()和测试= TESTME(配置)已被使用,那么我将不得不通过我的配置文件(xyz.cfg)作为“script_1.py -c xyz.cfg) - 有没有一种方法来利用鼻测试?我问这个,因为鼻子测试不会让我通过“配置”init()的TestMe类。
的config.read(文件)会导致一个错误,当我做“nosetests script_1.py”
E
======================================================================
ERROR: Failure: TypeError ('type' object is not iterable)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/nose/loader.py", line 519, in makeTest
return self._makeTest(obj, parent)
File "/usr/local/lib/python2.7/site-packages/nose/loader.py", line 578, in _makeTest
return MethodTestCase(obj)
File "/usr/local/lib/python2.7/site-packages/nose/case.py", line 345, in __init__
self.inst = self.cls()
File "/home/..../script_1.py", line 30, in __init__
config.read(file)
File "/usr/local/lib/python2.7/ConfigParser.py", line 300, in read
for filename in filenames:
TypeError: 'type' object is not iterable
有没有一种方法,我可以运行我的剧本与配置,并与nosetests独立?