我正在开发eclipse中的python。因此,python src文件和test文件位于不同的目录中。
问题是:我们如何在测试文件夹中的特定于命令行的测试文件上运行?这些显然依赖于src文件夹中的文件。
干杯
编辑:如果我运行
python test/myTestFile.py我得到了依赖错误,例如。ImportError:没有名为SrcFile1的模块
发布于 2011-03-11 04:57:03
您需要确保正确设置了PYTHONPATH,以便命令行解释器能够找到您的包,或者从Eclipse Pydev中运行您的测试用例。Update:另一种选择:使用nose运行测试可能会让事情变得更容易,因为它可以自动发现包和测试用例。
如果你的项目是这样布局的:
/home/user/dev/
src/pkg1/
mod1.py
test/
mod1_test.py用法:PYTHONPATH=$HOME/dev/src python test/mod1_test.py。我还建议您使用distribute和virtualenv来设置您的项目进行开发。
更新了,以回应评论中的问题:
下面显示了PYTHONPATH环境变量如何扩展Python的包搜索路径:
% PYTHONPATH=foo:bar python -c 'import sys; print sys.path[:3]'
['', '/home/user/foo', '/home/user/bar']
# exporting the variable makes it sticky for your current session. you can
# add this to your shell's resource file (e.g. ~/.profile) or source
# it from a textfile to save typing:
% export PYTHONPATH=bar:baz
% python -c 'import sys; print sys.path[:3]'
['', '/home/user/foo', '/home/user/bar']
% python -c 'import sys; print sys.path[:3]'
['', '/home/user/foo', '/home/user/bar']以上这些应该会让你在短期内行动起来。使用distribute和virtualenv具有较高的一次性设置成本,但您可以从使用它们中获得更长期的好处。如果您有机会,请阅读上的许多教程中的一些,以便设置这些教程,看看它们是否适合您的项目。
发布于 2011-03-11 04:59:32
对此有两种主要的解决方案。或者,您需要使用例如PYTHONPATH环境变量来告诉测试源在哪里,或者您需要通过插入相关的__init__.py文件来使测试和生产代码成为同一模块树的一部分。在后一种方法中,树可能如下所示:
|-- qbit
| |-- __init__.py
| |-- master.py
| |-- policy.py
| |-- pool.py
| |-- synchronize.py
| `-- worker.py
`-- test
|-- __init__.py
|-- support.py
|-- test_policy.py
|-- test_synchronize.py
`-- test_worker.py__init__.py可以是空文件。
https://stackoverflow.com/questions/5265746
复制相似问题