Python 测试套件的结构

Python 测试套件的结构,python,Python,在下面提到的目录结构中,我试图为一个测试模块构建一个python平台 在/opt/site目录中,我还有一个\uuuu init\uuuu文件和另一个文件suite.py以及目录dir1、dir2 在dir1、dir2目录中,我有以下文件\uuuu init\uuuu和execute.py 我的问题是suite.py上的代码应该是什么,如果我在suite.py中提到dir1,那么应该执行dir1/execute.py,如果提到dir2,那么应该执行dir2/execute.py,或者如果两者都提

在下面提到的目录结构中,我试图为一个测试模块构建一个python平台

在/opt/site目录中,我还有一个
\uuuu init\uuuu
文件和另一个文件suite.py以及目录dir1、dir2

在dir1、dir2目录中,我有以下文件
\uuuu init\uuuu
和execute.py

我的问题是suite.py上的代码应该是什么,如果我在suite.py中提到dir1,那么应该执行dir1/execute.py,如果提到dir2,那么应该执行dir2/execute.py,或者如果两者都提到,那么应该执行dir1/execute.py和dir2/execute.py

还有如何从suite.py调用dir1/execute.py中的特定函数


有人能告诉我如何实现这一点吗?我假设您的目录结构如下:

-+- dir1
 |   |
 |   +- execute.py
 |
 +- dir2
 |   |
 |   +- execute.py
 |
 +- __init__.py
 |
 +- suite.py
from dir1 import execute as execute1
from dir2 import execute as execute2
解决方案 如果我的假设是正确的,并且您的目录结构与上面提到的目录结构相匹配,那么您可以将空的
\uuuuu init\uuuuuu.py
文件放在
dir1
dir2
目录中,然后在
suite.py
中执行您想要的文件:

-+- dir1
 |   |
 |   +- execute.py
 |
 +- dir2
 |   |
 |   +- execute.py
 |
 +- __init__.py
 |
 +- suite.py
from dir1 import execute as execute1
from dir2 import execute as execute2
这将导入两个
execute.py
文件,这意味着它们将被执行。要再次执行已导入的模块,只需对表示模块的变量使用
reload()
(例如
reload(execute1)

解释 通过将
\uuuu init\uuuuuupy
放在
dir1
dir2
目录中,您告诉Python应该将
dir1
dir2
视为模块。因为它们是模块,所以您可以简单地导入它们的子模块(两者最初的名称都是
execute
,所以我以更独特的方式命名它们)


它有帮助吗?

为测试模块构建python平台到底意味着什么?您是否有要测试的模块或要构建通用测试框架?是的,您希望构建通用框架,以便人们以后可以从suite.py添加自己的模块。请让我知道这一点。您知道已经存在的大量工具吗?)unittest,py.test,nose,他们已经做了你想做的,也许其他人也做了。这太通用了,我想从头开始做。你能解释一下吗。。要再次执行已导入的模块,只需在表示模块的变量上使用reload()(例如reload(execute1))。如果任何execute.py文件中发生更改,会发生什么情况?如何编译它。因此,有必要将init文件放入dir1、dir2Ad中。1.要重新加载模块,您需要执行以下操作:例如重新加载(execute1)。为什么?因为如果某个模块已经被导入,它将不会被相同的
import
语句重新加载,您需要显式地执行此操作。公元2年。如果更改发生在主脚本执行期间,请参阅“Ad.1”。如果更改发生在执行
suite.py
之前,那么它将自动完成(非常明显)。此外,也没有编译(除非您指的是自动创建
.pyc
文件)。公元3年。是的,如果你想做对的话。您还可以使用
execfile()
。你有什么问题吗?