private NewMessageArgs ParseMsgToNewMessageArgs(string msg)
        {
            //结构如下
            //消息类型,(Event类型Command),参数1,参数2,参数N
            var newMessageArgs = new NewMessageArgs();

            var datas = msg.Split(',');

            newMessageArgs.Msg = msg;

            //获取指令
            switch (datas[0])
            {
            case "Info":
                newMessageArgs.Type = MessageType.Info;
                break;

            case "Warning":
                newMessageArgs.Type = MessageType.Warning;
                break;

            case "Debug":
                newMessageArgs.Type = MessageType.Debug;
                break;

            case "Error":
                newMessageArgs.Type = MessageType.Error;
                break;

            case "AssertSuccess":
                newMessageArgs.Type = MessageType.AssertSuccess;
                break;

            case "AssertFailed":
                newMessageArgs.Type = MessageType.AssertFailed;
                break;

            case "AssertError":
                newMessageArgs.Type = MessageType.AssertError;
                break;

            case "Event":
                newMessageArgs.Type = MessageType.Event;
                break;
            }

            if (datas[0] != "Event")
            {
                newMessageArgs.MessageArgs = new string[datas.Length - 1];
                Array.Copy(datas, 1, newMessageArgs.MessageArgs, 0, datas.Length - 1);
            }
            else
            {
                newMessageArgs.MessageArgs  = new string[datas.Length - 2];
                newMessageArgs.EventCommand = datas[1];
                Array.Copy(datas, 2, newMessageArgs.MessageArgs, 0, datas.Length - 2);
            }

            return(newMessageArgs);
        }
        public void EventMessageProcess(NewMessageArgs args)
        {
            switch (args.EventCommand)
            {
            case "SetTestCauseCount": lb_TestCauseCount.Text = "共计测试数量:" + args.MessageArgs[0]; break;

            case "SetPlatformCount": lb_TestPlatformCount.Text = "需测试平台:" + args.MessageArgs[0]; break;

            case "SetRunningTestCauseName": lb_NowTestCauseName.Text = "当前测试用例:" + args.MessageArgs[0]; break;

            case "TestComplete": btn_Run.Enabled = true; btn_Stop.Enabled = false; break;
            }
        }
        private void LogManger(NewMessageArgs args)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("[" + DateTime.Now.ToString());
            sb.Append(" " + args.Type.ToString());
            sb.Append("]:");
            if (args.MessageArgs == null)
            {
                sb.Append(args.Msg);
            }
            else
            {
                sb.Append(args.MessageArgs[0]);
            }
            tb_Log.AppendText(sb.ToString() + "\r\n");
        }
 public void SetTestResultContent(NewMessageArgs args)
 {
     //设置测试结果框中的内容
     if (args.Type == MessageType.AssertError)
     {
         lv_TestResult.Items.Add(new ListViewItem(new string[] { args.MessageArgs[0], args.MessageArgs[1], "系统错误" }));
         lv_TestResult.Items[lv_TestResult.Items.Count - 1].ForeColor = Color.Orange;
     }
     else if (args.Type == MessageType.AssertSuccess)
     {
         lv_TestResult.Items.Add(new ListViewItem(new string[] { args.MessageArgs[0], args.MessageArgs[1], "成功", "", "", args.MessageArgs[2] }));
         lv_TestResult.Items[lv_TestResult.Items.Count - 1].ForeColor = Color.LightGreen;
     }
     else if (args.Type == MessageType.AssertFailed)
     {
         lv_TestResult.Items.Add(new ListViewItem(new string[] { args.MessageArgs[0], args.MessageArgs[1], "失败", args.MessageArgs.Length > 3 ? args.MessageArgs[3] : "", args.MessageArgs.Length > 3 ? args.MessageArgs[4] : "", args.MessageArgs[2] }));
         lv_TestResult.Items[lv_TestResult.Items.Count - 1].ForeColor = Color.Red;
     }
 }
        void TcpClient_NewMessageEvent(object e, NewMessageArgs args)
        {
            this.Invoke(new InvokeDelegate(() =>
            {
                switch (args.Type)
                {
                case MessageType.AssertError: SetTestResultContent(args); break;

                case MessageType.AssertFailed: SetTestResultContent(args); break;

                case MessageType.AssertSuccess: SetTestResultContent(args); break;

                case MessageType.Event: EventMessageProcess(args); break;

                case MessageType.Debug: LogManger(args); break;

                case MessageType.Info: LogManger(args); break;

                case MessageType.Error: LogManger(args); break;

                case MessageType.Warning: LogManger(args); break;
                }
            }));
        }