为什么鼻子测试无法找到 sys.path 中的元素?
我正在用nose运行一系列单元测试。对于我的一些测试,我想从 sys.path 中删除模块的路径,这样与我正在测试的内容不会发生冲突。
sys.path.remove('/path/to/remove/from/sys/path')
如果我运行 Python 解释器并调用 sys.path
,'/path/to/remove/from/sys/path'
就会出现在列表中。然而,一旦调用nosetests,上面的代码就无法找到它,并给我一个“在列表中找不到”错误。
为什么nose无法在sys.path
中找到路径?
I have a series of unit tests that I'm running with nose. For some of my tests, I'd like to remove a module's path from the sys.path
so there is no conflict with what I am testing.
sys.path.remove('/path/to/remove/from/sys/path')
If I run the Python interpreter and call sys.path
, the '/path/to/remove/from/sys/path'
is there in the list. However, once nosetests is called, the above code cannot find it and gives me a "not found in list" error.
Why is nose not able to find the path in sys.path
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你不是这个意思吗?
如果nose在
sys.path
中找不到它,那么它就不在那里......nose对做了很多欺骗sys.path 本身。为什么不打印
sys.path
并查看它在鼻子下运行时的实际情况Didn't you mean this?
If nose can't find it in
sys.path
then it wasn't there... nose does lots of diddling withsys.path
on its own. Why not printsys.path
and see what it actually is when run under nose创建脚本 get_mod_py_path.py 以设置 PYTHONPATH。在这种情况下,它会删除冲突的路径。
然后在调用nosetests的bash中使用它。
Create a script, get_mod_py_path.py, to set the PYTHONPATH. In this case, it is dropping the conflicted path.
Then use it in a bash that calls nosetests.