void OnChildTestReady (UnitTestGroup parent)
		{
			if (parent.Tests.All (test => test.Status == TestStatus.Ready)) {
				UnitTestResult result = GenerateResultFromChildTests (parent);
				parent.RegisterResult (testContext, result);
				testContext.Monitor.EndTest (parent, result);
				parent.Status = TestStatus.Ready;
			}
		}
예제 #2
0
        void OnProjectRenamed(object sender, SolutionItemRenamedEventArgs e)
        {
            UnitTestGroup parent = Parent as UnitTestGroup;

            if (parent != null)
            {
                parent.UpdateTests();
            }
        }
예제 #3
0
        private void UnitTestGroup_UnitTestGroupStartingEvent(object sender)
        {
            UnitTestGroup test   = sender as UnitTestGroup;
            string        indent = string.Empty.PadRight(this.indentLevel * 3, ' ');

            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.WriteLine(string.Format("{0}{1}", indent, test.ID).PadRight(65));
            Console.ForegroundColor = ConsoleColor.Gray;
            this.indentLevel++;
        }
		UnitTestResult GenerateResultFromChildTests (UnitTestGroup parent)
		{
			var result = UnitTestResult.CreateSuccess ();
			foreach (UnitTest test in parent.Tests) {
				UnitTestResult childResult = test.GetLastResult ();
				result.Add (childResult);
				UpdateCounts (result, childResult);
			}
			return result;
		}
예제 #5
0
 public UnitTestGroupViewModel(UnitTestGroup model)
     : base(model)
 {
     this.typedModel = model;
     this.IgnorePropertyHasChanged.Add("DisplayName");
     this.UnitTestObjects = new UnitTestObjectsViewModel(this.typedModel.UnitTestObjects);
     this.Commands.AddItem("AddUnitTest", t => this.UnitTestObjects.AddUnitTest());
     this.Commands.AddItem("AddUnitTestGroup", t => this.UnitTestObjects.AddUnitTestGroup());
     this.Commands.AddItem("Paste", t => this.UnitTestObjects.Paste(), t => this.UnitTestObjects.CanPaste());
     this.Commands.AddItem("Delete", t => this.Delete());
     this.EnableCutCopy();
 }
            void ClearRunningStatus(UnitTest t)
            {
                t.Status = TestStatus.Ready;
                UnitTestGroup group = t as UnitTestGroup;

                if (group == null)
                {
                    return;
                }
                foreach (UnitTest ct in group.Tests)
                {
                    ClearRunningStatus(ct);
                }
            }
예제 #7
0
        IEnumerable <UnitTest> GetAllTests(UnitTestGroup group)
        {
            foreach (var test in group.Tests)
            {
                yield return(test);

                if (test is UnitTestGroup grp)
                {
                    foreach (var subTest in GetAllTests(grp))
                    {
                        yield return(subTest);
                    }
                }
            }
        }
        public DotNetCoreNamespaceTestGroup(IDotNetCoreTestRunner testRunner, UnitTestGroup parent, string name)
            : base(name)
        {
            currentNamespace = this;
            this.testRunner  = testRunner;

            if (parent == null || String.IsNullOrEmpty(parent.FixtureTypeNamespace))
            {
                FixtureTypeNamespace = name;
            }
            else
            {
                FixtureTypeNamespace = parent.FixtureTypeNamespace + "." + name;
            }
        }
        public VsTestNamespaceTestGroup(IVsTestTestRunner testRunner, UnitTestGroup parent, Project project, string name)
            : base(name)
        {
            this.Project     = project;
            currentNamespace = this;
            this.testRunner  = testRunner;

            if (parent == null || String.IsNullOrEmpty(parent.FixtureTypeNamespace))
            {
                FixtureTypeNamespace = name;
            }
            else
            {
                FixtureTypeNamespace = parent.FixtureTypeNamespace + "." + name;
            }
        }
        public UnitTest CreateUnitTest(IWorkspaceObject entry)
        {
            UnitTest test = null;

            if (entry is DotNetProject)
            {
                test = XUnitProjectTestSuite.CreateTest(entry);
            }

            UnitTestGroup group = test as UnitTestGroup;

            if (group != null && !group.HasTests)
            {
                return(null);
            }

            return(test);
        }
예제 #11
0
        public UnitTest CreateUnitTest(WorkspaceObject entry)
        {
            UnitTest test = null;

            if (entry is DotNetProject)
            {
                test = NUnitProjectTestSuite.CreateTest((DotNetProject)entry);
            }

            UnitTestGroup grp = test as UnitTestGroup;

            if (grp != null && !grp.HasTests)
            {
                test.Dispose();
                return(null);
            }

            return(test);
        }
        public string[] CollectTests(UnitTestGroup group)
        {
            List <string> result = new List <string> ();

            foreach (var t in group.Tests)
            {
                if (t.IsExplicit)
                {
                    continue;
                }
                if (t is UnitTestGroup)
                {
                    result.AddRange(CollectTests((UnitTestGroup)t));
                }
                else
                {
                    result.Add(t.TestId);
                }
            }
            return(result.ToArray());
        }
        /// <summary>
        /// Creates the unit test.
        /// </summary>
        /// <returns>The unit test.</returns>
        /// <param name="entry">Entry.</param>
        /// <remarks>
        /// This is where unit testing integration starts.
        /// </remarks>
        public UnitTest CreateUnitTest(WorkspaceObject entry)
        {
            UnitTest test = null;

            var dotnet = entry as DotNetProject;

            if (dotnet != null)
            {
                test = XUnitProjectTestSuite.CreateTest(dotnet);
            }

            UnitTestGroup grp = test as UnitTestGroup;

            if (grp != null && !grp.HasTests)
            {
                test.Dispose();
                return(null);
            }

            return(test);
        }
예제 #14
0
        UnitTest SearchRecursive(UnitTestGroup group, string testPath)
        {
            UnitTest result;

            foreach (var t in group.Tests)
            {
                if (t.TestId == testPath)
                {
                    return(t);
                }
                var childGroup = t as UnitTestGroup;
                if (childGroup != null)
                {
                    result = SearchRecursive(childGroup, testPath);
                    if (result != null)
                    {
                        return(result);
                    }
                }
            }
            return(null);
        }
예제 #15
0
		UnitTest SearchRecursive (UnitTestGroup group, string testPath)
		{
			UnitTest result;
			foreach (var t in group.Tests) {
				if (t.TestId == testPath)
					return t;
				var childGroup = t as UnitTestGroup;
				if (childGroup != null) {
					result = SearchRecursive (childGroup, testPath);
					if (result != null)
						return result;
				}
			}
			return null;
		}
		public string[] CollectTests (UnitTestGroup group)
		{
			List<string> result = new List<string> ();
			foreach (var t in group.Tests) {
				if (t.IsExplicit)
					continue;
				if (t is UnitTestGroup) {
					result.AddRange (CollectTests ((UnitTestGroup)t));
				} else {
					result.Add (t.TestId);
				}
			}
			return result.ToArray ();
		}