/// <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); } }
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 }; }
private void OnSequenceOver(ISequenceTestResult result) { SequenceOver?.Invoke(result); }
private void OnSequenceStarted(ISequenceTestResult result) { SequenceStarted?.Invoke(result); }