在Python和GUI测试内包引用

我有关于Python包和测试问题。 我正在写使用WX Python的应用程序,并具有GUI零件以下基本的文件夹/包结构。 该mainframe.py窗口有一个依赖于logpane.py面板,该面板使用mainframe.py绝对进口随便输入:

import guiapp.utilviews.logpane

文件夹/封装布局:

mainapp - main.py guiapp - __init__.py utilviews - __init__.py - logpane.py - other stuff... mainview - __init__.py - mainframe.py - other stuff here... other views...

然而,对于应用程序的GUI部分,我想,除了单元测试(他们不会造成任何问题),有一个小的“测试”/例如为每个视图。 也就是说,对于logpane,我想有小的可运行的例子,将劳克裸骨的应用程序显示视图来测试布局是确定等我开始的方式是,我有一个

if __name__ == "__main__": # create some small window and a wx app # instanciate the panel and launch the app pass

在面板的实际执行文件/查看本身。 这创造了奇迹的logpane。 我可以运行该文件独立看看的观点,并认为它在一起。

但当然,战略抛锚的mainframe.py,因为依赖于logpane.py无法解析。 这一点,因为目前的主要模块是mainframe.py的唯一途径mainframe.py能达到utilviews包是如果主/发射模块进一步在树。

那么,如何组织这些类型的测试? 对于单元测试,我用鼻子这是好的,并采取照顾的问题,因为鼻子是每mainapp文件夹(因此所有intrapackage引用作品)推出。 但这些测试都是这样小的独立的程序。 我根本就不会扰乱这些蟒蛇文件mainapp文件夹(会有很多这样的文件)。 有没有我可以做到这一点任何其他方式?

任何投入是有价值的。

谢谢,里卡德

--------------解决方案-------------

你可以使用PYTHONPATH 将其设置为您的主项目目录,执行你的测试文件之前。 然后,就可以解决所有的进口,就好像你会从该目录执行。

$ find
.
./test
./test/test.py
./some
./some/__init__.py

$ cat some/__init__.py
x = 10

$ cat test/test.py
import some
print some.x

$ cd test
$ export PYTHONPATH=..
$ python test.py
10

分类:蟒蛇 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.084 (s). 10 q(s)