如何运行python测试文件

Kar*_*ran 1 python unit-testing

我在eclipse中开发python.因此,python src文件和测试文件位于不同的目录中.

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

干杯

编辑:如果我跑

python test/myTestFile.py
Run Code Online (Sandbox Code Playgroud)

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

sam*_*ias 5

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

如果您的项目布局如下:

/home/user/dev/
    src/pkg1/
         mod1.py

    test/
         mod1_test.py
Run Code Online (Sandbox Code Playgroud)

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

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

这显示了PYTHONPATH环境变量如何扩展Python的包sear ch路径:

% 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']
Run Code Online (Sandbox Code Playgroud)

以上内容可以让你在短期内上路.使用distribute和virtualenv可以获得更高的一次性设置成本,但是使用它们可以获得长期的好处.当你有机会的时候,阅读一些关于SO的教程来设置它们,看看它们是否适合你的项目.