python - Python 3 中的 Nose 提示但不是 2

标签 python nose nosetests

我使用 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/

相关文章:

python - 在Python中向nosetests添加更多测试模式?

python - Nosetests-script.py 错误 - 从 Needle 运行测试

python - Dask 线程如何与 OpenBLAS/MKL/……交互?

python - 在 Nose 下测试 Python 代码时,我应该如何验证日志消息?

python - 是否可以使用 Nose 同时多次运行一个测试?

使用nose进行测试的Python导入-在当前包之上导入模块的最佳实践是什么

python - nose2 中是否存在 assertRaises(或 assert_raises)

python - 在 Python 中测试变量类型

python - 如何使用 web2py 创建、插入和更新数据库表?

python - 在 python 中创建一个数据库,其中包含一个具有不同字段的表