Example #1
0
        private async Task<May<TestNodeAssembly>> LoadFor(string path1, TestNodeAssembly testNodeAssembly)
        {
            var contexts = await _testServiceManager.LoadTests(path1);

            if (contexts.Count == 0)
            {
                return May.NoValue;
            }
            else
            {
                testNodeAssembly.TestsLoadContexts = contexts;

                var allClassNodes = contexts.SelectMany(context => context.ClassNodes);
                IEnumerable<TestNodeNamespace> testNamespaces =
                    TestsLoadContext.GroupTestClasses(allClassNodes.ToList(), testNodeAssembly);

                testNodeAssembly.Children.AddRange(testNamespaces);
                return new May<TestNodeAssembly>(testNodeAssembly);
            }

            //                        else return result.Result.Bind(context =>
            //                        {
            //                          //  
            //
            //                            IEnumerable<TestNodeNamespace> testNamespaces =
            //                                GroupTestClasses(context.ClassNodes, testNodeAssembly);
            //
            //                            testNodeAssembly.Children.AddRange(testNamespaces);
            //                            return new May<TestNodeAssembly>(testNodeAssembly);
            //                        });
        }
Example #2
0
        public async Task<TestsRootNode> LoadTests(IList<string> assembliesPaths)
        {
            _log.Info("Loading tests from: "+string.Join(",", assembliesPaths));
            var tasks = new Dictionary<string, Task<May<TestNodeAssembly>>>();
            var testsRootNode = new TestsRootNode();

            
            foreach (var path in assembliesPaths)
            {
                string path1 = path;
                string assemblyName = Path.GetFileNameWithoutExtension(path);
                var testNodeAssembly = new TestNodeAssembly(testsRootNode, assemblyName);
                testNodeAssembly.AssemblyPath = path;

                var task = LoadFor(path1, testNodeAssembly);
                tasks.Add(path, task);

            }
            var assemblies = await Task.WhenAll(tasks.Values);
            
            testsRootNode.Children.AddRange(assemblies.WhereHasValue());
            testsRootNode.State = TestNodeState.Inactive;
            testsRootNode.IsIncluded = true;
            return testsRootNode;
            

        }
Example #3
0
        private async Task <May <TestNodeAssembly> > LoadFor(string path1, TestNodeAssembly testNodeAssembly)
        {
            var contexts = await _testServiceManager.LoadTests(path1);

            if (contexts.Count == 0)
            {
                return(May.NoValue);
            }
            else
            {
                testNodeAssembly.TestsLoadContexts = contexts;

                var allClassNodes = contexts.SelectMany(context => context.ClassNodes);
                IEnumerable <TestNodeNamespace> testNamespaces =
                    TestsLoadContext.GroupTestClasses(allClassNodes.ToList(), testNodeAssembly);

                testNodeAssembly.Children.AddRange(testNamespaces);
                return(new May <TestNodeAssembly>(testNodeAssembly));
            }

            //                        else return result.Result.Bind(context =>
            //                        {
            //                          //
            //
            //                            IEnumerable<TestNodeNamespace> testNamespaces =
            //                                GroupTestClasses(context.ClassNodes, testNodeAssembly);
            //
            //                            testNodeAssembly.Children.AddRange(testNamespaces);
            //                            return new May<TestNodeAssembly>(testNodeAssembly);
            //                        });
        }
Example #4
0
        public static IEnumerable <TestNodeNamespace> GroupTestClasses(
            List <TestNodeClass> classNodes, TestNodeAssembly testNodeAssembly = null)
        {
            return(classNodes
                   .GroupBy(classNode => classNode.Namespace)
                   .Select(group =>
            {
                var ns = new TestNodeNamespace(testNodeAssembly, @group.Key);
                foreach (TestNodeClass nodeClass in @group)
                {
                    nodeClass.Parent = ns;
                }

                ns.Children.AddRange(@group);
                return ns;
            }));
        }
Example #5
0
        private async Task LoadFor(IEnumerable <string> path1, TestsRootNode testsRootNode)
        {
            var contexts = await _testServiceManager.LoadTests(path1);

            foreach (var testContext in contexts.OrderBy(p => p.AssemblyName))
            {
                var testNodeAssembly = new TestNodeAssembly(testsRootNode, testContext.AssemblyName);

                testNodeAssembly.TestsLoadContexts = new List <TestsLoadContext> {
                    testContext
                };

                var allClassNodes = testContext.ClassNodes;

                IEnumerable <TestNodeNamespace> testNamespaces = TestsLoadContext.GroupTestClasses(allClassNodes.ToList(), testNodeAssembly);

                testNodeAssembly.Children.AddRange(testNamespaces);

                testsRootNode.Children.Add(testNodeAssembly);
            }
        }
Example #6
0
        public async Task <TestsRootNode> LoadTests(IList <string> assembliesPaths)
        {
            _log.Info("Loading tests from: " + string.Join(",", assembliesPaths));
            var tasks         = new Dictionary <string, Task <May <TestNodeAssembly> > >();
            var testsRootNode = new TestsRootNode();


            foreach (var path in assembliesPaths)
            {
                string path1            = path;
                string assemblyName     = Path.GetFileNameWithoutExtension(path);
                var    testNodeAssembly = new TestNodeAssembly(testsRootNode, assemblyName);
                testNodeAssembly.AssemblyPath = path;

                var task = LoadFor(path1, testNodeAssembly);
                tasks.Add(path, task);
            }
            var assemblies = await Task.WhenAll(tasks.Values);

            testsRootNode.Children.AddRange(assemblies.WhereHasValue());
            testsRootNode.State      = TestNodeState.Inactive;
            testsRootNode.IsIncluded = true;
            return(testsRootNode);
        }