コード例 #1
0
        /// <summary>
        /// 如果TestProject的SetUp执行成功发送开始测试Session的命令
        /// </summary>
        private void StartTestSessionsIfSetUpOver(ISequenceTestResult result)
        {
            if (result.SessionId != CommonConst.TestGroupSession || result.SequenceIndex != CommonConst.SetupIndex)
            {
                return;
            }
            _globalInfo.EventDispatcher.SequenceOver -= StartTestSessionsIfSetUpOver;
            if (result.ResultState != RuntimeState.Success)
            {
                return;
            }
            ControlMessage startMessage = new ControlMessage(MessageNames.CtrlStart, CommonConst.BroadcastSession);

            startMessage.AddParam("RunAll", true.ToString());
            // 发送开始指令
            foreach (int session in _testsMaintainer.TestContainers.Keys)
            {
                if (session == CommonConst.TestGroupSession)
                {
                    continue;
                }
                startMessage.Id = session;
                _globalInfo.MessageTransceiver.Send(startMessage);
            }
        }
コード例 #2
0
        public SequenceStateHandle(int session, ISequence sequence, StateManageContext stateManageContext)
        {
            this.Session             = session;
            this._sequence           = sequence;
            this.SequenceIndex       = sequence.Index;
            this.State               = RuntimeState.Idle;
            this._eventDispatcher    = stateManageContext.EventDispatcher;
            this._stateManageContext = stateManageContext;
            this.BlockedTime         = TimeSpan.Zero;
            this._blockedStart       = DateTime.MaxValue;
            this.RunStack            = CallStack.GetEmptyStack(session, sequence.Index);

            _sequenceTestResult = this._stateManageContext.GetSequenceResults(Session, SequenceIndex);
            _sequenceResultData = new SequenceResultData()
            {
                Name          = sequence.Name,
                Description   = sequence.Description,
                StartTime     = DateTime.MaxValue,
                EndTime       = DateTime.MaxValue,
                CoroutineId   = -1,
                ElapsedTime   = 0,
                RuntimeHash   = stateManageContext.RuntimeHash,
                FailInfo      = null,
                Result        = RuntimeState.Idle,
                FailStack     = null,
                Session       = session,
                SequenceIndex = sequence.Index,
            };
            _stateManageContext.DatabaseProxy.WriteData(_sequenceResultData);
            _statusData = new RuntimeStatusData()
            {
                RuntimeHash = _stateManageContext.RuntimeHash,
                Sequence    = this.SequenceIndex,
                Session     = Session,
                Stack       = string.Empty,
                Time        = CurrentTime,
                ElapsedTime = this.ElapsedTime.TotalMilliseconds,
                Result      = StepResult.NotAvailable,
                WatchData   = null,
                StatusIndex = -1
            };
        }
コード例 #3
0
 private void OnSequenceOver(ISequenceTestResult result)
 {
     SequenceOver?.Invoke(result);
 }
コード例 #4
0
 private void OnSequenceStarted(ISequenceTestResult result)
 {
     SequenceStarted?.Invoke(result);
 }