0

我有以下目录结构:

main/
    |setup.cfg
    |foo.cfg
    |tests/
          |setup.cfg
          |foo.cfg
          |test_simple.py

并测试test_simple.py

from nose.tools import *
from nose.config import all_config_files, user_config_files

def test_singe():
    print 'all:', all_config_files()
    print 'user:', user_config_files()
    assert_true(False)

main/我跑nosetests tests/test_simple.py,我得到:

all: ['setup.cfg']
user: []

我认为要么all_config_filesuser_config_files将返回所有配置文件。但我只得到顶部setup.cfg

根据文档

all_config_files()
    Return path to any existing user config files, plus any setup.cfg
    in the current working directory.

user_config_files()
    Return path to any existing user config files

我希望main/tests/*.cfg找到文件。怎么了?

4

1 回答 1

1

根据源代码user_config_files只会从用户的主文件夹返回配置:

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))

all_config_filesuser_config_files将从根目录(运行nosetests的地方)返回+ setup.cfg:

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

希望有帮助。

于 2013-03-29T13:39:10.117 回答