我正在编写一个测试软件来控制一些使用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"我需要将子测试中的状态带入我的主“测试计划”中,以便评估状态并允许单元移动到下一个测试。
发布于 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'])。
https://stackoverflow.com/questions/51792668
复制相似问题