[英]Python Script call a different python script, then, from secondary script bring an string/result to main script
我正在编写一个测试软件来控制一些使用 PyVISA 和 VISA 以及一些 Agilent IO 库的安捷伦仪器。 我创建了一个“TesPlan”(testplan.py),它应该“调用”一些其他的 Phyton 测试脚本(rf_test.py、rf_test1、rf_test2.py 等)
在这一点上,我正在使用“子流程”来打开并执行我的所有测试,但是,我还没有找到将每个测试的结果带入我的主测试计划的方法。
请看下面我的代码:
TEST-PLAN (testplan.py)
import visa
import time
import subprocess
##SubTest located at:
test = "C:\\python_rf"
os.chdir(test)
import rf_test
subprocess.Popen(['python', 'rf_test.py'])
print (status)
import rf_test1
subprocess.Popen(['python', 'rf_test1.py'])
print (status)
TEST SCRIPT (rf_test.py)
##Do some RF - GPS Testing
if all is OK
status = "PASS"
TEST SCRIPT (rf_test1.py)
##Do some RF - GPS Testing
if all is OK
status = "PASS"
我需要将子测试中的状态带入我的主要“测试计划”中,以便评估状态并允许单元移动到下一个测试。
你为什么要使用子流程? 通常,当您调用用 Python 编写的脚本时,子进程不是必需的。 您可以改为使每个测试脚本成为一个函数,比如说test()
,它返回状态。 然后你可以导入这些模块并运行rf_test.test()
, rf_test1.test()
。
如果出于某种原因需要使用子进程,您可以让您的脚本 (1) 打印状态或 (2) 使用某个退出代码退出,例如sys.exit(0)
表示成功, sys.exit(1)
表示失败. 然后,您将解析subprocess.run(['python', 'rf_test1.py'])
在情况 (1) 中捕获的stdout
或获取退出代码subprocess.call(['python', 'rf_test1.py'])
在情况 2 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.