我开发了一个基于Python的CANOE自动化代码,其中我启动CANOE,打开配置,加载测试规范并运行它
现在,我想等到测试模块执行完成后再记录判决。但不知道怎么做。任何帮助都将不胜感激
"""Execute XML Test Cases without a pass verdict"""
from time import sleep
import win32com.client as win32
import configparser
import time
from pandas.core.computation.expressions import set_test_mode
import pythoncom
testComplete = False
class TestModuleEvents(object):
def OnReportGenerated(self,Success, SourceFullName, GeneratedFullName):
print("Report Generated")
testComplete = True
def OnStop(self, value):
print("Test Module Stopped")
testComplete = True
def OnStart(self):
print("Test Module Started")
testComplete = True
class TestConfigurationEvents(object):
def OnStart(self):
print("Measurement Started")
testComplete = False
def OnStop(self):
print("Measurement Stopped")
testComplete = True
config = configparser.RawConfigParser()
config.read('usecase02_configuration.properties')
configurationPath = config.get('TESTCONFIGURATION', 'configurationpath')
testspec = config.get('TESTCONFIGURATION', 'testspecification')
CANoe = win32.DispatchEx("CANoe.Application")
CANoe.Open(configurationPath)
testSetup = CANoe.Configuration.TestSetup
testSetup.TestEnvironments.Add(testspec)
test_env = testSetup.TestEnvironments.Item('Test Environment')
test_env = win32.CastTo(test_env, "ITestEnvironment2")
print(report.FullName)
# Get the XML TestModule (type <TSTestModule>) in the test setup
test_module = test_env.TestModules.Item('Tester')
CANoe.Measurement.Start()
sleep(5) # Sleep because measurement start is not instantaneous
win32.WithEvents(test_module, TestModuleEvents)
test_module.Start()
# sleep(60)
while test_module.Verdict==0:
time.sleep(1)
# test_module.Stop()
print(test_module.Verdict)
你把所有的东西都准备好了。我认为唯一的问题是对python中全局变量工作方式的误解
在python文件的全局范围内声明
testComplete
。在TestModuleEvents.OnStop
的内部声明另一个名为testComplete
的变量。此实例与全局范围中的变量完全无关将
OnStop
处理程序(以及其他处理程序)更改为如下内容:这将将全局变量导入到您的作用域中,并将该变量设置为
True
,而不是创建一个新变量完成此操作后,将while循环更改为:
相关问题 更多 >
编程相关推荐