从使用nose运行测试的代码中,如何检索已在命令行上传递的配置文件列表(不自行解析args,因为nose应该在某处公开这些值),如,
nosetests -c default.ini -c staging.ini
然后会导致,
[default.ini, staging.ini]
我似乎无法在nose.config对象上找到这些值。
答案 0 :(得分:1)
似乎您的问题是您命名的配置文件与默认的鼻子配置文件的命名方式不同。
来自nose.config
config_files = [
# Linux users will prefer this
"~/.noserc",
# Windows users will prefer this
"~/nose.cfg"
]
def user_config_files():
"""Return path to any existing user config files
"""
return filter(os.path.exists,
map(os.path.expanduser, config_files))
def all_config_files():
"""Return path to any existing user config files, plus any setup.cfg
in the current working directory.
"""
user = user_config_files()
if os.path.exists('setup.cfg'):
return user + ['setup.cfg']
return user
缺点是,鼻子正在寻找名为〜/ .noserc或〜/ nose.cfg的默认配置文件。如果他们没有像这样命名,那么鼻子就不会拿起它们,你必须手动指定配置文件的名称,就像你在命令行上做的那样
现在说你有一些对象 config 这是实例 nose.config.Config 然后是最好的获取方式你的配置文件名就是说
>>> from nose.config import Config
>>> c = Config()
>>> c.configure(argv=["nosetests", "-c", "foo.txt"])
>>> c.options.files
['foo.txt']