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); // }); }
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; }
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); // }); }
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; })); }
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); } }
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); }