ノーズを使用してテストを実行するコードから、コマンドラインで渡された構成ファイルのリストを取得するにはどうすればよいですか (ノーズはこれらの値をどこかに公開する必要があるため、引数を自分で解析せずに)、次のようにします。
nosetests -c default.ini -c staging.ini
その結果、
[default.ini, staging.ini]
これらの値が、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
つまり、nose は ~/.noserc または ~/nose.cfg という名前のデフォルトの構成ファイルを探しています。このように名前が付けられていない場合、鼻はそれらを取得せず、コマンドラインで行っているように、構成ファイルの名前を手動で指定する必要があります
たとえば、 nose.config.Configのインスタンスであるオブジェクト構成があるとします。構成ファイル名を取得する最良の方法は、
>>> from nose.config import Config
>>> c = Config()
>>> c.configure(argv=["nosetests", "-c", "foo.txt"])
>>> c.options.files
['foo.txt']