This repository has been archived on 2025-11-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AUTS_OLD/UTS_Core/UTSModule/Test/TestResult.vb
2024-03-11 16:34:21 +08:00

220 lines
7.0 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Imports System.Text
Imports UTS_Core.UTSModule.DbTableModel.Customer
Imports UTS_Core.UTSModule.Station
Namespace UTSModule.Test
Public Class TestResult
''' <summary>
''' 测试结果枚举集合
''' </summary>
Enum TestResultEnum
Fail
Pass
End Enum
Sub New()
UserID = -1
ServiceID = -1
ProductionLineID = -1
OrderID = -1
AppName = String.Empty
TestPlan = String.Empty
_dutSn = String.Empty
TestResult = TestResultEnum.Fail
ErrCode = String.Empty
FailSteps = New List(Of RowNode)()
CustomRecord = New Dictionary(Of String, String)()
End Sub
''' <summary>
''' 当前用户索引,登陆后填充
''' </summary>
''' <returns></returns>
Public Property UserID As Integer
''' <summary>
''' 当前服务索引,登陆后获取
''' </summary>
''' <returns></returns>
Public Property ServiceID As Integer
''' <summary>
''' 所属产线索引,用户选择后获取
''' </summary>
''' <returns></returns>
Public Property ProductionLineID As Integer
''' <summary>
''' 所属订单索引,用户提供条码,系统自动填充
''' </summary>
''' <returns></returns>
Public Property OrderID() As Integer
''' <summary>
''' 测试程序的名称,登陆后填充
''' </summary>
''' <returns></returns>
Public Property AppName As String
''' <summary>
''' 测试流程名,切换项目流程站后获取
''' </summary>
''' <returns></returns>
Public Property TestPlan As String
Private _dutSn As String
''' <summary>
''' 测试产品的索引序号,测试时获取,(使用大写,8字符
''' </summary>
''' <returns></returns>
Public Property DUT_SN As String
Get
Return _dutSn
End Get
Set(value As String)
_dutSn = value.ToUpper
End Set
End Property
''' <summary>
''' 测试开始日期与时间,测试时获取
''' </summary>
''' <returns></returns>
Public Property StartTime As DateTime
''' <summary>
''' 测试耗时,测试时获取
''' </summary>
''' <returns></returns>
Public Property UsedTime As TimeSpan
''' <summary>
''' 测试结果,测试时获取
''' </summary>
''' <returns></returns>
Public Property TestResult As TestResultEnum
''' <summary>
''' 错误代码,测试时获取
''' </summary>
''' <returns></returns>
Public Property ErrCode As String
''' <summary>
''' 失败步骤集合,测试时获取
''' </summary>
''' <returns></returns>
Public Property FailSteps As List(Of RowNode)
''' <summary>
''' 自定义记录数据,测试时获取
''' </summary>
''' <returns></returns>
Public Property CustomRecord() As Dictionary(Of String, String)
''' <summary>
''' 切换测试站后,初始话测试结果信息
''' </summary>
Public Sub InitTestResult(user As Integer)
UserID = user
TestResult = TestResultEnum.Fail
FailSteps = New List(Of RowNode)()
CustomRecord = New Dictionary(Of String, String)()
End Sub
''' <summary>
''' 开启新一轮测试时,重置测试结果信息
''' </summary>
Public Sub ResetTestResult()
ErrCode = String.Empty
_dutSn = String.Empty
TestResult = TestResultEnum.Fail
StartTime = Now
UsedTime = New TimeSpan()
OrderID = -1
FailSteps.Clear()
CustomRecord.Clear()
End Sub
''' <summary>
''' 添加自定义需要记录的测试信息
''' </summary>
''' <param name="name">记录列名</param>
''' <param name="value">记录值</param>
Public Function AddCustomRecord(name As String, value As String) As Boolean
If String.Compare(name, $"{TestLogTable.ColNames.DUT_SN}") = 0 Then
_dutSn = value
Else
If CustomRecord.ContainsKey(name) Then
CustomRecord(name) = value '已有字段则覆盖原值
Else
CustomRecord.Add(name, value)
End If
End If
Return True
End Function
''' <summary>
''' 将当前测试信息转换为字符键值对
''' </summary>
''' <returns></returns>
Public Function ToStringDictionary() As Dictionary(Of String, String)
Dim dic As New Dictionary(Of String, String) From {
{$"{TestLogTable.ColNames.UserID}", UserID.ToString()},
{$"{TestLogTable.ColNames.ServiceID}", ServiceID.ToString()},
{$"{TestLogTable.ColNames.DUT_SN}", _dutSn},
{$"{TestLogTable.ColNames.AppName}", AppName},
{$"{TestLogTable.ColNames.TestPlan}", TestPlan},
{$"{TestLogTable.ColNames.StartTime}", StartTime.ToString("yyyy-MM-dd HH:mm:ss")},
{$"{TestLogTable.ColNames.UsedTime}", UsedTime.TotalSeconds.ToString("F2")},
{$"{TestLogTable.ColNames.TestResult}", IIf(TestResult = TestResultEnum.Fail, 0, 1).ToString()},
{$"{TestLogTable.ColNames.ErrCode}", ErrCode},
{$"{TestLogTable.ColNames.ProductionLineID}", ProductionLineID.ToString()},
{$"{TestLogTable.ColNames.OrderID}", OrderID.ToString()}
}
'填充失败步骤信息(此处需要一个信息定位失败步骤)
Dim steps As New StringBuilder
Dim msg As New StringBuilder
For Each node As RowNode In FailSteps
If steps.Length > 0 Then
steps.Append(","c)
msg.Append(","c)
End If
steps.Append(node.RowListIndex)
msg.Append(node.Description)
msg.Append($" {node.TestReturn.RecordValue} ({node.TestReturn.LowerLimit},{node.TestReturn.UpperLimit})")
Next
dic.Add($"{TestLogTable.ColNames.FailSteps}", steps.ToString())
dic.Add($"{TestLogTable.ColNames.FailMsg}", msg.ToString())
'填充自定义记录数据字段信息
For Each keyValue As KeyValuePair(Of String, String) In CustomRecord
If dic.ContainsKey(keyValue.Key) Then
dic(keyValue.Key) = keyValue.Value
Else
dic.Add(keyValue.Key, keyValue.Value)
End If
Next
Return dic
End Function
End Class
End Namespace