gpt4 book ai didi

python - 使用 Nose 的 ImportError,使用原始单元测试没有 ImportError?

转载 作者:太空狗 更新时间:2023-10-30 00:15:36 29 4
gpt4 key购买 nike

我在使用 Nose 运行我的单元测试时遇到了一个ImportError,而当我单独运行它时却没有。此处提及的所有文件均可在 http://gist.github.com/395541# 中查看.

如果我运行测试脚本 importTest-Test.py,我会直接得到以下输出:

C:\usr\x\data\src\Python\mmm>python importTest-Test.py
In mmdb
In BusinessLogic
[]
.
----------------------------------------------------------------------
Ran 1 test in 0.001s

如果我允许 Nose 运行它,我会得到一个错误:

C:\usr\x\data\src\Python\mmm>nosetests.exe
E
======================================================================
ERROR: Failure: ImportError (No module named mmdb.DataAccess.AttemptDB)
----------------------------------------------------------------------
Traceback (most recent call last):
File "c:\bin\installed\python2.6\lib\site-packages\nose-0.11.3-py2.6.egg\nose\loader.py", line 382, in loadTestsFromName
addr.filename, addr.module)
File "c:\bin\installed\python2.6\lib\site-packages\nose-0.11.3-py2.6.egg\nose\importer.py", line 39, in importFromPath
return self.importFromDir(dir_path, fqname)
File "c:\bin\installed\python2.6\lib\site-packages\nose-0.11.3-py2.6.egg\nose\importer.py", line 86, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "C:\usr\x\data\src\Python\mmm\importtest-Test.py", line 2, in <module>
import importtest
File "C:\usr\x\data\src\Python\mmm\importtest.py", line 1, in <module>
from mmdb.BusinessLogic.AttemptManager import AttemptManager
File "C:\usr\x\data\src\Python\mmm\mmdb\BusinessLogic\AttemptManager.py", line 1, in <module>
from mmdb.DataAccess.AttemptDB import AttemptDB
ImportError: No module named mmdb.DataAccess.AttemptDB

----------------------------------------------------------------------
Ran 1 test in 0.002s

FAILED (errors=1)

nose 遇到困难的包中涉及的文件具有以下结构 - 有些可以在这里看到 http://gist.github.com/395541# .:

mmm\importtest-Test.py
mmm\importtest.py
mmm\mmdb
mmm\__init__.py
mmm\mmdb\BusinessLogic
mmm\mmdb\BusinessObject
mmm\mmdb\DataAccess
mmm\mmdb\__init__.py
mmm\mmdb\BusinessLogic\AttemptManager.py
mmm\mmdb\BusinessLogic\Collections
mmm\mmdb\BusinessLogic\__init__.py
mmm\mmdb\BusinessLogic\Collections\__init__.py
mmm\mmdb\BusinessObject\__init__.py
mmm\mmdb\DataAccess\AttemptDB.py
mmm\mmdb\DataAccess\__init__.py

这发生在 Win32/Python 2.6/Nose 0.11.3 上。

如有任何帮助,我将不胜感激。

谢谢。

最佳答案

默认情况下,nose 操纵它使用的 PYTHONPATH。您可以尝试使用 -P 开关关闭此行为。

关于python - 使用 Nose 的 ImportError,使用原始单元测试没有 ImportError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2799852/

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