1

我正在编写一个测试软件来控制一些使用 PyVISA 和 VISA 的安捷伦仪器以及一些安捷伦 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"

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

4

1 回答 1

1

你为什么要使用子流程?通常,当您调用用 Python 编写的脚本时,不需要子进程。您可以改为让每个测试脚本成为一个函数,比如说test(),它返回状态。然后你可以只导入这些模块并运行rf_test.test(), rf_test1.test().

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

于 2018-08-10T22:13:54.683 回答