public void TestCaseFinishedEventAfterTestCaseCancelledEventTest() { TestCaseCanceledEventTest(); var evt = new TestCaseFinishedEvent(); _lifecycle.Fire(evt); Assert.IsNull(_lifecycle.TestCaseStorage.Value); Assert.AreEqual(1, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases.Length); Assert.AreEqual("test name", _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].name); Assert.AreEqual(status.canceled, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].status); Assert.AreEqual("Test skipped with unknown reason", _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].failure.message); Assert.AreEqual(null, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].attachments); Assert.AreEqual(null, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].steps); Assert.AreNotEqual(0, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].stop); }
public void TestCaseFinishedEventTest() { _lifecycle = Allure.DefaultLifecycle; var tsevt = new TestSuiteStartedEvent(SuiteUid, "suite42"); _lifecycle.Fire(tsevt); var tcsevt = new TestCaseStartedEvent(SuiteUid, "test name"); _lifecycle.Fire(tcsevt); var evt = new TestCaseFinishedEvent(); _lifecycle.Fire(evt); Assert.IsNull(_lifecycle.TestCaseStorage.Value); Assert.AreEqual(1, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases.Length); Assert.AreEqual("test name", _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].name); Assert.AreEqual(null, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].failure); Assert.AreEqual(null, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].attachments); Assert.AreEqual(null, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].steps); Assert.AreNotEqual(0, _lifecycle.TestSuiteStorage.Get(SuiteUid).testcases[0].stop); }
public void OnTestEvent(string report) { Logger.Info($"{report}"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(report); var eventType = xmlDoc.DocumentElement; using (StreamWriter file = new StreamWriter("WriteLines2.txt", true)) { file.WriteLine(report); } switch (eventType.Name) { case "start-suite": //Console.WriteLine($"***test-run started: {eventType.InnerText}"); var suiteFullName = eventType.GetAttribute("name"); //var suiteFullName = eventType.GetAttribute("fullname"); //var suiteID = eventType.GetAttribute("id"); string suiteUid = Guid.NewGuid().ToString(); string assembly = suiteFullName.Split('.')[0]; string clazz = suiteFullName.Split('.')[suiteFullName.Split('.').Length - 1]; var testSuiteStartedEvt = new TestSuiteStartedEvent(suiteUid, suiteFullName); foreach ( Assembly asm in AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains(assembly))) { foreach (Type type in asm.GetTypes().Where(x => x.Name.Contains(clazz))) { var manager = new AttributeManager(type.GetCustomAttributes(false).OfType <Attribute>().ToList()); manager.Update(testSuiteStartedEvt); } } Logger.Info($"Adding suite '{suiteFullName}' with '{suiteUid}' to SuiteStorage"); SuiteStorage.Add(suiteFullName, suiteUid); _lifecycle.Fire(testSuiteStartedEvt); break; case "start-test": try { //Console.WriteLine($"***test started: {eventType.GetAttribute("name")}, id: {eventType.GetAttribute("id")}, parentId: {eventType.GetAttribute("parentId")}"); var testFullName = eventType.GetAttribute("fullname"); var testName = eventType.GetAttribute("name"); string assembly2 = testFullName.Split('.')[0]; string clazz2 = testFullName.Split('(')[0].Split('.')[testFullName.Split('(')[0].Split('.').Count() - 2]; var testStartedEvt = new TestCaseStartedEvent((string)SuiteStorage[SuiteStorage.Count - 1], testFullName); foreach ( Assembly asm in AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains(assembly2))) { foreach (Type type in asm.GetTypes().Where(x => x.Name.Contains(clazz2))) { string name = !testName.Contains("(") ? testName : testName.Substring(0, testName.IndexOf('(')); MethodInfo methodInfo = type.GetMethod(name); if (methodInfo == null) { continue; } var manager = new AttributeManager(methodInfo.GetCustomAttributes(false).OfType <Attribute>().ToList()); manager.Update(testStartedEvt); } } _lifecycle.Fire(testStartedEvt); } catch (Exception ex) { Logger.Error($"{ex.Message} - {ex.StackTrace}"); } break; case "test-case": switch (eventType.GetAttribute("result")) { case "Passed": Logger.Info($"Test Passed: {eventType.GetAttribute("name")}"); var testFinishedEvt = new TestCaseFinishedEvent(); _lifecycle.Fire(testFinishedEvt); break; case "Failed": { Logger.Info($"Test Failed: {eventType.GetAttribute("name")}"); try { _lifecycle.Fire(new TestCaseFailureEvent { Throwable = new Exception(eventType["failure"]?["message"]?.InnerText), StackTrace = eventType["failure"]?["stack-trace"]?.InnerText }); _lifecycle.Fire(new TestCaseFinishedEvent()); } catch (Exception ex) { Logger.Error($"{ex.Message} - {ex.StackTrace}"); } } break; } break; case "test-suite": var suiteFullName2 = eventType.GetAttribute("name"); var suiteUidFromStorage = (string)SuiteStorage[suiteFullName2]; if (suiteUidFromStorage != null) { var testSuiteFinishedEvt = new TestSuiteFinishedEvent(suiteUidFromStorage); try { _lifecycle.Fire(testSuiteFinishedEvt); } catch (Exception ex) { Logger.Error($"{ex.Message} - {ex.StackTrace}"); } SuiteStorage.Remove(suiteFullName2); } else { Logger.Warn($"{suiteFullName2} - suite not present in storage"); } break; default: break; } }