首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python脚本调用不同的python脚本,然后从辅助脚本将字符串/结果带到主脚本

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

Stack Overflow用户
提问于 2018-08-11 03:03:22
回答 1查看 134关注 0票数 1

我正在编写一个测试软件来控制一些使用PyVISA和VISA的安捷伦仪器,以及一些安捷伦IO库。我已经创建了一个"TesPlan“(testplan.py),它应该”调用“其他一些Phyton测试脚本(rf_test.py、rf_test1、rf_test2.py等)。

在这一点上,我正在使用一个“子流程”来打开和执行我的所有测试,但是,我还没有找到将每个测试的结果带入我的主测试计划的方法。

请看下面我的代码:

代码语言:javascript
复制
  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"

我需要将子测试中的状态带入我的主“测试计划”中,以便评估状态并允许单元移动到下一个测试。

EN

回答 1

Stack Overflow用户

发布于 2018-08-11 06:13:55

为什么要使用子进程呢?通常,当您调用用Python编写的脚本时,子进程不应该是必需的。相反,您可以使每个测试脚本成为一个返回状态的函数,比方说test()。然后,您可以导入这些模块并运行rf_test.test()rf_test1.test()

如果出于某种原因需要使用子进程,您可以让脚本(1)打印状态或(2)使用某个退出代码退出,例如,sys.exit(0)表示成功,sys.exit(1)表示失败。然后,在案例(1)中解析由subprocess.run(['python', 'rf_test1.py'])捕获的stdout,或者在案例2中获得退出代码subprocess.call(['python', 'rf_test1.py'])

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51792668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档