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, .Action = True, .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