gpt4 book ai didi

python - Nosetest 包括不需要的父目录

转载 作者:太空狗 更新时间:2023-10-29 20:27:49 24 4
gpt4 key购买 nike

我试图将 nosetests 限制到特定目录,但是在测试运行期间,它包括我目标目录的父目录,这样做会引发错误。

以下是测试运行输出的关键元素:

nose.importer: DEBUG: Add path /projects/myproject/myproject/specs
nose.importer: DEBUG: Add path /projects/myproject/myproject
nose.importer: DEBUG: Add path /projects/myproject
nose.importer: DEBUG: insert /projects/myproject into sys.path

我正在使用 buildoutpbp.recipe.noserunner。这是相关的 /projects/myproject/buildout.cfg 部分:

[specs]
recipe = pbp.recipe.noserunner
eggs =
pbp.recipe.noserunner
${buildout:eggs}
figleaf
pinocchio
working-directory =
myproject/specs
defaults =
-vvv
--exe
--include ^(it|ensure|must|should|specs?|examples?)
--include (specs?(.py)?|examples?(.py)?)$
--with-spec
--spec-color

我也尝试将 where=myproject/specs 设置为 defaults 参数之一以帮助限制导入,但仍然没有任何乐趣。

对我哪里出错有什么建议吗?

编辑:

我尝试过--exclude 父目录,但没有成功。

最佳答案

我想您期待以下行为。

nose.importer: DEBUG: Add path /projects/myproject
nose.importer: DEBUG: insert /projects/myproject into sys.path

为什么不尝试使用 --match--exclude 模式来限制测试集?

尝试:

--exclude myproject/myproject

我检查了 nose.importer 的源代码:nose 递归地添加了 specs 的父包。我认为你不能绕过这个,除非你创建一个特定的进口商......我不知道 nose API 是否可行。

def add_path(path, config=None):
"""Ensure that the path, or the root of the current package (if
path is in a package), is in sys.path.
"""

# FIXME add any src-looking dirs seen too... need to get config for that

log.debug('Add path %s' % path)
if not path:
return []
added = []
parent = os.path.dirname(path)
if (parent
and os.path.exists(os.path.join(path, '__init__.py'))):
added.extend(add_path(parent, config))
elif not path in sys.path:
log.debug("insert %s into sys.path", path)
sys.path.insert(0, path)
added.append(path)
if config and config.srcDirs:
for dirname in config.srcDirs:
dirpath = os.path.join(path, dirname)
if os.path.isdir(dirpath):
sys.path.insert(0, dirpath)
added.append(dirpath)
return added


def remove_path(path):
log.debug('Remove path %s' % path)
if path in sys.path:
sys.path.remove(path)

关于python - Nosetest 包括不需要的父目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6197940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com