Imports System.Text Imports System.Xml Namespace UTSModule.Station Public Class StationTestPlan Inherits StationPlan Sub New(packet As StationPacket) MyBase.New(packet) TestPlanLocked = False ParentPacket = packet HeadNode = New RowNode() HeadNode.HeadNode = HeadNode HeadNode.RowType = RowNode.RowTypeEnum.FixedModule HeadNode.RowLever = -1 HeadNode.RowIndex = 0 HeadNode.StationPlan = Me HeadNode.Label = $"StationPlan" HeadNode.Description = $"StationPlan" CreateStationPlan() End Sub ''' 测试流程是否已锁定 Public Property TestPlanLocked As Boolean ''' ''' 头节点 ''' ''' Friend Property HeadNode As RowNode ''' ''' 节点树状集合 ''' ''' Public ReadOnly Property RowNodes() As RowNodeCollection Get Return HeadNode.RowNodes End Get End Property ''' ''' 节点树的所有节点集合 ''' ''' Public ReadOnly Property RowList() As List(Of RowNode) Get Return HeadNode.RowList End Get End Property ''' ''' 节点总数 ''' ''' Public ReadOnly Property RowCount() As Integer Get Return HeadNode.AllChildCount End Get End Property ''' ''' '创建固定模块节点 ''' ''' ''' ''' Private Function CreateFixedRowNode(text As String, desc As String) As RowNode Dim node As New RowNode With {.RowType = RowNode.RowTypeEnum.FixedModule, .Label = text, .Description = desc} node.AddNode(New RowNode()) '添加一个空的子节点 Return node End Function ''' ''' 创建新的测试流程 ''' Public Overrides Sub CreateStationPlan() HeadNode.Clear() HeadNode.AddNode(CreateFixedRowNode($"{FixedModuleEnum.Setup}", $"{FixedModuleEnum.Setup} Module")) HeadNode.AddNode(New RowNode()) '添加一个空的子节点 HeadNode.AddNode(CreateFixedRowNode($"{FixedModuleEnum.Main}", $"{FixedModuleEnum.Main} Module")) HeadNode.AddNode(New RowNode()) '添加一个空的子节点 HeadNode.AddNode(CreateFixedRowNode($"{FixedModuleEnum.Pass}", $"{FixedModuleEnum.Pass} Module")) HeadNode.AddNode(New RowNode()) '添加一个空的子节点 HeadNode.AddNode(CreateFixedRowNode($"{FixedModuleEnum.Fail}", $"{FixedModuleEnum.Fail} Module")) HeadNode.AddNode(New RowNode()) '添加一个空的子节点 HeadNode.AddNode(CreateFixedRowNode($"{FixedModuleEnum.Cleanup}", $"{FixedModuleEnum.Cleanup} Module")) HeadNode.AddNode(New RowNode()) '添加一个空的子节点 HeadNode.AddNode(CreateFixedRowNode($"{FixedModuleEnum.Custom}", $"{FixedModuleEnum.Custom} Module")) HeadNode.AddNode(New RowNode()) '添加一个空的子节点 End Sub ''' ''' 保存为Xml文件 ''' ''' Public Overrides Sub SaveFile(path As String) Dim xws As New XmlWriterSettings With xws .Indent = True .NewLineOnAttributes = False .Encoding = New UTF8Encoding(False) End With Using xw As XmlWriter = XmlWriter.Create(path, xws) xw.WriteStartDocument() xw.WriteStartElement($"UtsStationPlan") '创建跟节点 xw.WriteStartElement($"Properties") '创建表属性节点 '测试流程的属性 xw.WriteEndElement() RowNode.SaveRowNodes(xw, HeadNode.RowNodes) xw.WriteEndElement() xw.WriteEndDocument() End Using End Sub ''' ''' 读取测试站属性 ''' ''' Private Sub LoadProperties(nodeList As XmlNodeList) End Sub ''' ''' 从Xml文件加载 ''' ''' Public Overrides Sub LoadFile(path As String) Dim xd As New XmlDocument() xd.Load(path) Dim xe As XmlElement Dim nodeList As XmlNodeList = xd.SelectSingleNode($"UtsStationPlan").ChildNodes For Each node As XmlNode In nodeList xe = CType(node, XmlElement) Select Case xe.LocalName Case "Properties" LoadProperties(xe.ChildNodes) Case "RowNodes" HeadNode.Clear() RowNode.LoadRowNodes(xe.ChildNodes, HeadNode.RowNodes) Case Else Throw New Exception($"LoadXml Unknown LocalName:{xe.LocalName}") End Select Next End Sub ''' ''' 测试流程固定模块 ''' Enum FixedModuleEnum ''' ''' 空模块,无测试时默认值 ''' None ''' ''' 主模块,测试起始模块 ''' Main ''' ''' 测试通过执行模块 ''' Pass ''' ''' 测试失败执行模块 ''' Fail ''' ''' 测试卸载执行模块 ''' Cleanup ''' ''' 测试设置执行模块 ''' Setup ''' ''' 自定义模块 ''' Custom End Enum 'czh 2022、10、04 新加字段 ''' ''' 模板文件名 ''' ''' Public Property TemplateFile As String ''' ''' 公司Logo文件 ''' ''' Public Property CompanyLogo As String End Class End Namespace