private void AddFailedActionsWithMessages(TestResult testResult)
 {
     if (testResult.verdict == Verdict.Failure)
         FailedActionsWithMessages = FailedActionsWithMessages.Add(
             new Pair<string, string>(
             testResult.trace.Last.Name,
             testResult.reason));
 }
 /// <summary>
 /// The list of executed requierments by each test case
 /// </summary>
 /// <param name="testResult"></param>
 /// <param name="sw"></param>
 private void AddExecutedRequirementsToTest(TestResult testResult, StreamWriter sw)
 {
     WriteLine(sw, "    Executed Requirements (");
     int c = 0;
     int count;
     foreach (Pair<string, string> req in testResult.executedRequirements.Keys)
     {
         count = testResult.executedRequirements.CountItem(req);
         WriteLine(sw, "        " + req.First + " - " + req.Second + " (" +
             count + (count > 1 ? " times" : " time") + ")" +
                           (c++ < testResult.executedRequirements.Keys.Count - 1 ? "," : ""));
     }
     WriteLine(sw, "    ),");
 }
        bool DefaultTestResultNotifier(TestResult testResult)
        {
            // Failed actions metrics
            AddFailedActionsWithMessages(testResult);

            using (StreamWriter sw = GetStreamWriter())
            {
                WriteLine(sw, "TestResult(" + testResult.testNr + ", "
                                                + "Verdict(\"" + testResult.verdict + "\"), \""
                                                + testResult.reason + "\",");

                // Requirements metrics
                if (showTestCaseCoveredRequirements == true)
                    AddExecutedRequirementsToTest(testResult, sw);

                WriteLine(sw, "    Trace(");
                for (int i = 0; i < testResult.trace.Count; i++)
                {
                    WriteLine(sw, "        " + testResult.trace[i].ToString() +
                                      (i < testResult.trace.Count - 1 ? "," : ""));

                }
                WriteLine(sw, "    )");
            }
            if (!this.continueOnFailure)
            {
                return testResult.verdict == Verdict.Success;
            }
            else
            {
                return true;
            }
        }