我使用 Python 的 unittest
框架编写测试,并在 Win7 x64 上使用 Python 2.7 中的 Nose 运行它们,它们运行良好:
D:\Users\Nick\Local HG\Waldo\code\shared\collider>py -2 -mnose
.............
----------------------------------------------------------------------
Ran 13 tests in 0.039s
OK
但是,当我在 Python 3.4 下运行它们时,出现莫名其妙的错误
D:\Users\Nick\Local HG\Waldo\code\shared\collider>py -3 -mnose
E
======================================================================
ERROR: Failure: ValueError ('D:\\Users\\Nick\\Local HG\\Waldo\\code\\shared\\__init__.py\\__init__.pyw\\__init__.pyc' is
not a package)
----------------------------------------------------------------------
Traceback (most recent call last):
File "D:\Python34\lib\site-packages\nose\failure.py", line 39, in runTest
raise self.exc_val.with_traceback(self.tb)
File "D:\Python34\lib\site-packages\nose\loader.py", line 414, in loadTestsFromName
addr.filename, addr.module)
File "D:\Python34\lib\site-packages\nose\importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "D:\Python34\lib\site-packages\nose\importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "D:\Python34\lib\imp.py", line 245, in load_module
return load_package(name, filename)
File "D:\Python34\lib\imp.py", line 210, in load_package
raise ValueError('{!r} is not a package'.format(path))
ValueError: 'D:\\Users\\Nick\\Local HG\\Waldo\\code\\shared\\__init__.py\\__init__.pyw\\__init__.pyc' is not a package
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (errors=1)
我的包结构是:
collider\
|- tests\
| |- __init__.py
| |- test_removing_chains.py
|
|- __init__.py
|- collider.py
|- viz.py
我不知道错误中的 "...\\__init__.py\\__init__.pyw\\__init__.pyc
"位是从哪里来的,或者它为什么会这样向上一个文件夹(\collider
显然从路径中被砍掉了)即使我将在包根目录或 \tests
文件夹中运行程序(同样的错误).
最佳答案
删除多余的 __init__.py
和 .pyc
文件后,问题就消失了。
然而,不幸的是,我一次删除了一堆,然后将它们一个接一个地添加回去并没有重现问题,所以我无法找出失败的关键点。
关于python - Python 3 中的 Nose 提示但不是 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23877527/