我对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文件夹弄得乱七八糟(会有很多这样的文件)。我还有别的办法可以做到吗?在
任何投入都是有价值的。在
谢谢, 里卡德
您可以使用
PYTHONPATH
。在执行测试文件之前,将其设置为主项目目录。然后,它将能够解析所有导入,就像从该目录执行一样。在相关问题 更多 >
编程相关推荐