python和GUI测试中的包内引用

2024-04-29 12:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python包和测试有问题。我正在使用wxpython编写一个应用程序,并具有以下gui部分的基本文件夹/包结构。大型机.py窗口依赖于日志窗格.py面板,可使用中的绝对导入轻松导入大型机.py

import guiapp.utilviews.logpane

文件夹/包布局:

^{pr2}$

但是,对于应用程序的gui部分,除了单元测试(它们没有问题),每个视图都有一个小的“test”/示例。也就是说,对于logpane,我希望有一个小的可运行的示例,它将启动一个显示视图的裸体应用程序,以测试布局是否正常等等。 我刚开始的时候

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

在面板/视图本身的实际实现文件中。这对logpane产生了奇迹。我可以单独运行这个文件来查看视图,看看它是否保持在一起。在

但当然,战略失败了大型机.py因为依赖于日志窗格.py无法解析。这是因为当前的主模块的大型机.py唯一的办法大型机.py如果主/启动的模块位于树的更高层,则可以访问utilviews包。在

那么我如何组织这些类型的测试呢?对于单元测试,我使用nose,这很好,可以解决问题,因为nose是根据mainapp文件夹启动的(因此所有包内引用都有效)。但是这些测试就像小型的独立程序。我不能用这些python文件把mainapp文件夹弄得乱七八糟(会有很多这样的文件)。我还有别的办法可以做到吗?在

任何投入都是有价值的。在

谢谢, 里卡德


Tags: and文件py文件夹视图应用程序面板示例
1条回答
网友
1楼 · 发布于 2024-04-29 12:20:27

您可以使用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

相关问题 更多 >