首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行python测试文件

如何运行python测试文件
EN

Stack Overflow用户
提问于 2011-03-11 04:49:16
回答 2查看 3K关注 0票数 1

我正在开发eclipse中的python。因此,python src文件和test文件位于不同的目录中。

问题是:我们如何在测试文件夹中的特定于命令行的测试文件上运行?这些显然依赖于src文件夹中的文件。

干杯

编辑:如果我运行

代码语言:javascript
复制
python test/myTestFile.py

我得到了依赖错误,例如。ImportError:没有名为SrcFile1的模块

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-11 04:57:03

您需要确保正确设置了PYTHONPATH,以便命令行解释器能够找到您的包,或者从Eclipse Pydev中运行您的测试用例。Update:另一种选择:使用nose运行测试可能会让事情变得更容易,因为它可以自动发现包和测试用例。

如果你的项目是这样布局的:

代码语言:javascript
复制
/home/user/dev/
    src/pkg1/
         mod1.py

    test/
         mod1_test.py

用法:PYTHONPATH=$HOME/dev/src python test/mod1_test.py。我还建议您使用distributevirtualenv来设置您的项目进行开发。

更新了,以回应评论中的问题:

下面显示了PYTHONPATH环境变量如何扩展Python的包搜索路径:

代码语言:javascript
复制
% 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具有较高的一次性设置成本,但您可以从使用它们中获得更长期的好处。如果您有机会,请阅读上的许多教程中的一些,以便设置这些教程,看看它们是否适合您的项目。

票数 5
EN

Stack Overflow用户

发布于 2011-03-11 04:59:32

对此有两种主要的解决方案。或者,您需要使用例如PYTHONPATH环境变量来告诉测试源在哪里,或者您需要通过插入相关的__init__.py文件来使测试和生产代码成为同一模块树的一部分。在后一种方法中,树可能如下所示:

代码语言:javascript
复制
|-- 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可以是空文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5265746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档