/// <summary> /// gather all the necessary information prior to /// reporting the results to testlink. /// </summary> /// <param name="result"></param> /// <param name="tlfa"></param> private void reportResult(TestResult result, Meyn.TestLink.TestLinkFixtureAttribute tlfa) { if (!adaptor.UpdateConnectionData(GetConnectionData(tlfa))) { log.Error("Connection error!"); return; } if (!adaptor.UpdateProjectData(tlfa.ProjectName, tlfa.TestPlan, tlfa.PlatformName, tlfa.Buildname)) { log.Error("Error setting project data"); } try { string TestName = result.Name; string MethodName = result.Test.MethodName; if (!TestName.Equals(MethodName)) { /* In case of parameterized tests, result.Name only contains the name of the parameter. So add the name of the actual test (=methodname) also */ TestName = MethodName + "." + TestName; } string TestDescription = result.Description; if (TestDescription == null) { TestDescription = ""; } if (adaptor.ConnectionValid == false) { log.WarnFormat(string.Format("Failed to export tesult for testcase {0}", result.Name)); return; } try { log.Error(string.Format("Exporting result for testcase {0}", result.Name)); sendResultToTestlink(result, tlfa, TestName); } catch (TestLinkException tlex) { log.Error(string.Format("Failed to export testcase '{0}'. {1}", TestName, tlex.Message)); } } catch (TestLinkException tlex) { log.Error(tlex.Message, tlex); } catch (Exception ex) { log.Error(ex.Message, ex); } }
/// <summary> /// gather all the necessary information prior to /// reporting the results to testlink. /// </summary> /// <param name="result"></param> /// <param name="tlfa"></param> private void reportResult(TestResult result, Meyn.TestLink.TestLinkFixtureAttribute tlfa) { adaptor.ConnectionData = tlfa; // update the connection and retrieve key base data from testlink try { string TestName = result.Name; if (adaptor.ConnectionValid == false) { log.Warning(string.Format("Failed to export tesult for testcase {0}", result.Name)); Console.WriteLine("Can't export results because invalid connection"); return; } try { int TCaseId = adaptor.GetTestCaseId(TestName); if (TCaseId > 0) { sendResultToTestlink(result, tlfa, TCaseId); //Console.WriteLine("exported testcase '{0}'. ", TestName); } } catch (TestLinkException tlex) { Console.WriteLine("Failed to export testcase '{0}'. {1}", TestName, tlex.Message); log.Error(string.Format("Failed to export testcase '{0}'. {1}", TestName, tlex.Message)); } } catch (TestLinkException tlex) { log.Error(tlex.Message, tlex); } catch (Exception ex) { log.Error(ex.Message, ex); } }
/// <summary> /// parse results and sub results. If it is a test case then try to record it in testlink /// </summary> /// <param name="result"></param> private void processResults(TestResult result) { log.DebugFormat("Process results for '{0}'", result.Name); if (IsDllPath(result.Name)) { extractTestFixtureAttribute(result.Name); } if (result.HasResults) { foreach (TestResult subResult in result.Results) { log.DebugFormat("Going recursive into '{0}'", subResult.Name); processResults(subResult); } } else { string testFixtureName = extractTestFixture(result.FullName); log.Debug(string.Format("Processing results for test {0} in fixture: {1}", result.Name, testFixtureName)); if (fixtures.ContainsKey(testFixtureName)) { Meyn.TestLink.TestLinkFixtureAttribute tlfa = fixtures[testFixtureName]; if (tlfa.TestSuite == null) { /* if testuite is not defined in default config file, take the Fullname as Testsuite name */ tlfa.TestSuite = extractTestFixture(result.FullName); } if (tlfa.ExportEnabled) { reportResult(result, tlfa); } else { log.Warn("Export skipped as enable parameter is set to false or missing"); } } } }
/// <summary> /// parse results and sub results. If it is a test case then try to record it in testlink /// </summary> /// <param name="result"></param> private void processResults(TestResult result) { if (IsDllPath(result.Name)) { extractTestFixtureAttribute(result.Name); } if (result.HasResults) { foreach (TestResult subResult in result.Results) { processResults(subResult); } } else { string testFixtureName = extractTestFixture(result.FullName); log.Debug(string.Format("Processing results for test {0} in fixture: {1}", result.Name, testFixtureName)); if (fixtures.ContainsKey(testFixtureName)) { Meyn.TestLink.TestLinkFixtureAttribute tlfa = fixtures[testFixtureName]; //tlfa.ConsiderConfigFile(); // ensure that a config file is read in reportResult(result, tlfa); } else { if (lastTestFixtureName != testFixtureName) // do this warning once per test fixture { log.Warning(string.Format("Test fixture '{0}' has no TestLinkFixture attribute", testFixtureName)); lastTestFixtureName = testFixtureName; } log.Warning(string.Format("Failed to record test case '{0}'", result.Name)); } } }