/// <summary> /// Processes all testcase events. /// <see cref="AllureCSharpCommons.Events.TestCaseStartedEvent"/> /// <see cref="AllureCSharpCommons.Events.TestCasePendingEvent"/> /// <see cref="AllureCSharpCommons.Events.TestCaseCanceledEvent"/> /// <see cref="AllureCSharpCommons.Events.TestCaseFinishedEvent"/> /// </summary> /// <param name="evt">event to process</param> public void Fire(ITestCaseEvent evt) { if (typeof(TestCaseStartedEvent).IsAssignableFrom(evt.GetType())) { StepStorage.Get(); var testcaseresult = TestCaseStorage.Get(); evt.Process(testcaseresult); lock (TestSuiteAddChildLock) { TestSuiteStorage.Put(evt.SuiteUid); TestSuiteStorage.Get(evt.SuiteUid).testcases = ArraysUtils.Add(TestSuiteStorage.Get(evt.SuiteUid).testcases, testcaseresult); } } else if (typeof(TestCaseFinishedEvent).IsAssignableFrom(evt.GetType())) { var testcaseresult = TestCaseStorage.Get(); evt.Process(testcaseresult); var root = StepStorage.PollLast(); testcaseresult.steps = ArraysUtils.AddAll(testcaseresult.steps, root.steps); testcaseresult.attachments = ArraysUtils.AddAll(testcaseresult.attachments, root.attachments); StepStorage.Remove(); TestCaseStorage.Remove(); } else { var testcaseresult = TestCaseStorage.Get(); evt.Process(testcaseresult); } }
/// <summary> /// Processes all step events. /// <see cref="AllureCSharpCommons.Events.StepStartedEvent"/> /// <see cref="AllureCSharpCommons.Events.StepCanceledEvent"/> /// <see cref="AllureCSharpCommons.Events.StepFinishedEvent"/> /// </summary> /// <param name="evt">event to process</param> public void Fire(IStepEvent evt) { if (typeof(StepStartedEvent).IsAssignableFrom(evt.GetType())) { var step = new step(); evt.Process(step); StepStorage.Put(step); } else if (typeof(StepFinishedEvent).IsAssignableFrom(evt.GetType())) { var step = StepStorage.PollLast(); evt.Process(step); StepStorage.Last.steps = ArraysUtils.Add(StepStorage.Last.steps, step); } else { var step = StepStorage.Last; evt.Process(step); } }
public override void Process(testcaseresult context) { var attachment = AllureResultsUtils.WriteAttachmentSafely(Attachment, Title, Type); context.attachments = ArraysUtils.Add(context.attachments, attachment); }
public override void Process(testcaseresult context) { context.parameters = ArraysUtils.Add(context.parameters, new parameter(Name, Value, parameterkind.environmentvariable)); }
public override void Process(step context) { context.attachments = ArraysUtils.Add(context.attachments, Attach); }