Python脚本调用不同的Python脚本,然后,从辅助脚本将字符串/结果带到主脚本
我正在编写一个测试软件,用PyVISA和VISA以及一些安捷伦IO库来控制一些安捷伦仪器。我已经创建了一个“TesPlan”(testplan.py),它应该“调用”其他几个Phyton测试脚本(rf_test.py、rf_test1、rf_test2.py等) 此时,我正在使用一个“子流程”来打开并执行我的所有测试,但是,我还没有找到将每个测试的结果纳入主测试计划的方法 请看下面我的代码:Python脚本调用不同的Python脚本,然后,从辅助脚本将字符串/结果带到主脚本,python,python-3.x,subprocess,visa,pyvisa,Python,Python 3.x,Subprocess,Visa,Pyvisa,我正在编写一个测试软件,用PyVISA和VISA以及一些安捷伦IO库来控制一些安捷伦仪器。我已经创建了一个“TesPlan”(testplan.py),它应该“调用”其他几个Phyton测试脚本(rf_test.py、rf_test1、rf_test2.py等) 此时,我正在使用一个“子流程”来打开并执行我的所有测试,但是,我还没有找到将每个测试的结果纳入主测试计划的方法 请看下面我的代码: TEST-PLAN (testplan.py) import visa import
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\u test.test()
,rf\u test1.test()
如果出于某种原因需要使用子流程,您可以让脚本(1)打印状态或(2)使用特定的退出代码退出,例如,成功时退出系统(0),失败时退出系统(1)。然后在案例(1)中解析
subprocess.run(['python',rf_test1.py'])
捕获的stdout
,或者在案例2中获取退出代码subprocess.call(['python',rf_test1.py'])
。Hi nnnmmm谢谢你的评论,我之所以使用子流程,是因为这是我进入这个社区的方式。我的子测试是用python编写的。当你提到创建函数时,你是指“def rf():”吗?