【发布时间】:2015-11-09 19:47:26
【问题描述】:
fw_test.py
def _testmethod_():
x = []
y = 0
while y !=5:
x.append(y)
y +=1
return x
t = _testmethod_()
main_test.py
import subprocess
p = subprocess.call(['python', 'main_test.py'])
由于指导方针,我无法将fw_test.py 导入main_test.py。我希望能够将_testmethod_() 从fw_test.py 返回的值存储在变量inmain_test.py 中。我了解到使用子进程我可以运行fw_test.py, but that is not enough for me.有没有办法解决这个问题?
编辑:fw_test.py 不能导入到main_test.py 的原因是有很多像fw_test.py 这样的测试脚本会根据测试不断变化。 main_test.py 应该是一个通用框架,它具有通过读取fw_test.py(返回值为True/False)的返回值来评估测试通过或失败的基本功能。我认为,如果我在文件顶部导入脚本,它将不再是通用的。我愿意接受其他建议。
为什么投反对票?
【问题讨论】:
-
你为什么用双下划线命名你的函数?不要那样做,这是为了 Python 内部的魔法方法。
-
您能否更清楚地了解建议您不要将
fw_test导入main_test的准则? -
可以修改
main_test.py吗?例如,main_test.py可以使用sys.exit(1)返回False和sys.exit(0)将True返回到fw_test.py。此外,您可以使用importlib.import_module()动态导入模块。 -
您始终可以使用动态导入,请参阅importlib。这就是我所做的正是你想要完成的事情;测试脚本直到运行时才知道,名称从文件中加载,然后使用
importlib导入。
标签: python subprocess