Ejemplo n.º 1
0
        protected override UnitTestResult OnRun(TestContext testContext)
        {
            UnitTestResult tres = new UnitTestResult();

            OnBeginTest(testContext);

            try {
                foreach (UnitTest t in Tests)
                {
                    UnitTestResult res;
                    try {
                        res = OnRunChildTest(t, testContext);
                        if (testContext.Monitor.IsCancelRequested)
                        {
                            break;
                        }
                    } catch (Exception ex) {
                        res = UnitTestResult.CreateFailure(ex);
                    }
                    tres.Add(res);
                }
            } finally {
                OnEndTest(testContext);
            }
            return(tres);
        }
		void ITestProgressMonitor.EndTest (UnitTest test, UnitTestResult result)
		{
			if (test is UnitTestGroup)
				return;
			
			testsRun++;
			ResultRecord rec = new ResultRecord ();
			rec.Test = test;
			rec.Result = result;
			
			resultSummary.Add (result);
			results.Add (rec);
			
			ShowTestResult (test, result);
			
			UpdateCounters ();

			double frac;
			if (testsToRun != 0)
				frac = ((double)testsRun / (double)testsToRun);
			else
				frac = 1;
			progressBar.Fraction = frac;
			progressBar.Text = testsRun + " / " + testsToRun;
		}
Ejemplo n.º 3
0
		UnitTestResult ReportXmlResult (IRemoteEventListener listener, XElement elem, string testPrefix, bool macunitStyle)
		{
			UnitTestResult result = new UnitTestResult ();
			var time = (string)elem.Attribute ("time");
			if (time != null)
				result.Time = TimeSpan.FromSeconds (double.Parse (time, CultureInfo.InvariantCulture));
			result.TestDate = DateTime.Now;

			var reason = elem.Element ("reason");
			if (reason != null)
				result.Message = (string) reason;

			var failure = elem.Element ("failure");
			if (failure != null) {
				var msg = failure.Element ("message");
				if (msg != null)
					result.Message = (string)msg;
				var stack = failure.Element ("stack-trace");
				if (stack != null)
					result.StackTrace = (string)stack;
			}

			switch ((string)elem.Attribute ("result")) {
			case "Error":
			case "Failure":
				result.Status = ResultStatus.Failure;
				break;
			case "Success":
				result.Status = ResultStatus.Success;
				break;
			case "Ignored":
				result.Status = ResultStatus.Ignored;
				break;
			default:
				result.Status = ResultStatus.Inconclusive;
				break;
			}

			if (elem.Name == "test-suite") {
				// nunitlite does not emit <test-suite type="Namespace" elements so we need to fake
				// them by deconstructing the full type name and emitting the suite started events manually
				var names = new List<string> ();
				if (!macunitStyle || (string)elem.Attribute ("type") == "Assembly")
					names.Add ("<root>");
				else
					names.AddRange (elem.Attribute ("name").Value.Split ('.'));

				for (int i = 0; i < names.Count; i ++)
					listener.SuiteStarted (testPrefix + string.Join (".", names.Take (i + 1)));

				var name = (string)elem.Attribute ("type") == "Assembly" ? "<root>" : (string) elem.Attribute ("name");
				var cts = elem.Element ("results");
				if (cts != null) {
					foreach (var ct in cts.Elements ()) {
						var r = ReportXmlResult (listener, ct, name != "<root>" ? testPrefix + name + "." : "", macunitStyle);
						result.Add (r);
					}
				}
				for (int i = 0; i < names.Count; i ++)
					listener.SuiteFinished (testPrefix + string.Join (".", names.Take (i + 1)), result);
			} else {
				string name = (string)elem.Attribute ("name");
				switch (result.Status) {
				case ResultStatus.Success:
					result.Passed++;
					break;
				case ResultStatus.Failure:
					result.Failures++;
					break;
				case ResultStatus.Ignored:
					result.Ignored++;
					break;
				case ResultStatus.Inconclusive:
					result.Inconclusive++;
					break;
				}

				listener.TestStarted (name);
				listener.TestFinished (name, result);
			}
			return result;
		}
Ejemplo n.º 4
0
        UnitTestResult ReportXmlResult(IRemoteEventListener listener, XElement elem, string testPrefix, bool macunitStyle)
        {
            UnitTestResult result = new UnitTestResult();
            var            time   = (string)elem.Attribute("time");

            if (time != null)
            {
                result.Time = TimeSpan.FromSeconds(double.Parse(time, CultureInfo.InvariantCulture));
            }
            result.TestDate = DateTime.Now;

            var reason = elem.Element("reason");

            if (reason != null)
            {
                result.Message = (string)reason;
            }

            var failure = elem.Element("failure");

            if (failure != null)
            {
                var msg = failure.Element("message");
                if (msg != null)
                {
                    result.Message = (string)msg;
                }
                var stack = failure.Element("stack-trace");
                if (stack != null)
                {
                    result.StackTrace = (string)stack;
                }
            }

            switch ((string)elem.Attribute("result"))
            {
            case "Error":
            case "Failure":
                result.Status = ResultStatus.Failure;
                break;

            case "Success":
                result.Status = ResultStatus.Success;
                break;

            case "Ignored":
                result.Status = ResultStatus.Ignored;
                break;

            default:
                result.Status = ResultStatus.Inconclusive;
                break;
            }

            if (elem.Name == "test-suite")
            {
                // nunitlite does not emit <test-suite type="Namespace" elements so we need to fake
                // them by deconstructing the full type name and emitting the suite started events manually
                var names = new List <string> ();
                if (!macunitStyle || (string)elem.Attribute("type") == "Assembly")
                {
                    names.Add("<root>");
                }
                else
                {
                    names.AddRange(elem.Attribute("name").Value.Split('.'));
                }

                for (int i = 0; i < names.Count; i++)
                {
                    listener.SuiteStarted(testPrefix + string.Join(".", names.Take(i + 1)));
                }

                var name = (string)elem.Attribute("type") == "Assembly" ? "<root>" : (string)elem.Attribute("name");
                var cts  = elem.Element("results");
                if (cts != null)
                {
                    foreach (var ct in cts.Elements())
                    {
                        var r = ReportXmlResult(listener, ct, name != "<root>" ? testPrefix + name + "." : "", macunitStyle);
                        result.Add(r);
                    }
                }
                for (int i = 0; i < names.Count; i++)
                {
                    listener.SuiteFinished(testPrefix + string.Join(".", names.Take(i + 1)), result);
                }
            }
            else
            {
                string name = (string)elem.Attribute("name");
                switch (result.Status)
                {
                case ResultStatus.Success:
                    result.Passed++;
                    break;

                case ResultStatus.Failure:
                    result.Failures++;
                    break;

                case ResultStatus.Ignored:
                    result.Ignored++;
                    break;

                case ResultStatus.Inconclusive:
                    result.Inconclusive++;
                    break;
                }

                listener.TestStarted(name);
                listener.TestFinished(name, result);
            }
            return(result);
        }
Ejemplo n.º 5
0
        UnitTestResult ReportXmlResult(IRemoteEventListener listener, XElement elem, string testPrefix)
        {
            UnitTestResult result = new UnitTestResult();
            var            time   = (string)elem.Attribute("time");

            if (time != null)
            {
                result.Time = TimeSpan.FromSeconds(double.Parse(time, CultureInfo.InvariantCulture));
            }
            result.TestDate = DateTime.Now;

            var reason = elem.Element("reason");

            if (reason != null)
            {
                result.Message = (string)reason;
            }

            var failure = elem.Element("failure");

            if (failure != null)
            {
                var msg = failure.Element("message");
                if (msg != null)
                {
                    result.Message = (string)msg;
                }
                var stack = failure.Element("stack-trace");
                if (stack != null)
                {
                    result.StackTrace = (string)stack;
                }
            }

            switch ((string)elem.Attribute("result"))
            {
            case "Error":
            case "Failure":
                result.Status = ResultStatus.Failure;
                break;

            case "Success":
                result.Status = ResultStatus.Success;
                break;

            case "Ignored":
                result.Status = ResultStatus.Ignored;
                break;

            default:
                result.Status = ResultStatus.Inconclusive;
                break;
            }

            if (elem.Name == "test-suite")
            {
                var name = (string)elem.Attribute("type") == "Assembly" ? "<root>" : (string)elem.Attribute("name");
                listener.SuiteStarted(testPrefix + name);
                var cts = elem.Element("results");
                if (cts != null)
                {
                    foreach (var ct in cts.Elements())
                    {
                        var r = ReportXmlResult(listener, ct, name != "<root>" ? testPrefix + name + "." : "");
                        result.Add(r);
                    }
                }
                listener.SuiteFinished(testPrefix + name, result);
            }
            else
            {
                string name = (string)elem.Attribute("name");
                switch (result.Status)
                {
                case ResultStatus.Success:
                    result.Passed++;
                    break;

                case ResultStatus.Failure:
                    result.Failures++;
                    break;

                case ResultStatus.Ignored:
                    result.Ignored++;
                    break;

                case ResultStatus.Inconclusive:
                    result.Inconclusive++;
                    break;
                }

                listener.TestStarted(name);
                listener.TestFinished(name, result);
            }
            return(result);
        }
Ejemplo n.º 6
0
		protected override UnitTestResult OnRun (TestContext testContext)
		{
			UnitTestResult tres = new UnitTestResult ();
			OnBeginTest (testContext);
			
			try {
				foreach (UnitTest t in Tests) {
					if (t.IsExplicit)
						continue;
					UnitTestResult res;
					try {
						res = OnRunChildTest (t, testContext);
						if (testContext.Monitor.IsCancelRequested)
							break;
					} catch (Exception ex) {
						res = UnitTestResult.CreateFailure (ex);
					}
					tres.Add (res);
				}
			} finally {
				OnEndTest (testContext);
			}
			return tres;
		}
Ejemplo n.º 7
0
		UnitTestResult ReportXmlResult (IRemoteEventListener listener, XElement elem, string testPrefix)
		{
			UnitTestResult result = new UnitTestResult ();
			var time = (string)elem.Attribute ("time");
			if (time != null)
				result.Time = TimeSpan.FromSeconds (double.Parse (time, CultureInfo.InvariantCulture));
			result.TestDate = DateTime.Now;

			var reason = elem.Element ("reason");
			if (reason != null)
				result.Message = (string) reason;

			var failure = elem.Element ("failure");
			if (failure != null) {
				var msg = failure.Element ("message");
				if (msg != null)
					result.Message = (string)msg;
				var stack = failure.Element ("stack-trace");
				if (stack != null)
					result.StackTrace = (string)stack;
			}

			switch ((string)elem.Attribute ("result")) {
			case "Error":
			case "Failure":
				result.Status = ResultStatus.Failure;
				break;
			case "Success":
				result.Status = ResultStatus.Success;
				break;
			case "Ignored":
				result.Status = ResultStatus.Ignored;
				break;
			default:
				result.Status = ResultStatus.Inconclusive;
				break;
			}

			if (elem.Name == "test-suite") {
				var name = (string)elem.Attribute ("type") == "Assembly" ? "<root>" : (string) elem.Attribute ("name");
				listener.SuiteStarted (testPrefix + name);
				var cts = elem.Element ("results");
				if (cts != null) {
					foreach (var ct in cts.Elements ()) {
						var r = ReportXmlResult (listener, ct, name != "<root>" ? testPrefix + name + "." : "");
						result.Add (r);
					}
				}
				listener.SuiteFinished (testPrefix + name, result);
			} else {
				string name = (string)elem.Attribute ("name");
				switch (result.Status) {
				case ResultStatus.Success:
					result.Passed++;
					break;
				case ResultStatus.Failure:
					result.Failures++;
					break;
				case ResultStatus.Ignored:
					result.Ignored++;
					break;
				case ResultStatus.Inconclusive:
					result.Inconclusive++;
					break;
				}

				listener.TestStarted (name);
				listener.TestFinished (name, result);
			}
			return result;
		}