繁体   English   中英

Python 脚本调用不同的 Python 脚本,然后从辅助脚本将字符串/结果带到主脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM