Ejemplo n.º 1
0
        private List <NodeTest> LoadTestCaseDetails(ITestCaseDiscoveryMessage testCaseDiscoveryMessage, ITypeInfo testClass)
        {
            try
            {
#if CORECLR
                var specType = testCaseDiscoveryMessage.TestAssembly.Assembly.GetType(testClass.Name).ToRuntimeType();
#else
                var testAssembly = Assembly.LoadFrom(testCaseDiscoveryMessage.TestAssembly.Assembly.AssemblyPath);
                var specType     = testAssembly.GetType(testClass.Name);
#endif
                var roles = RoleNames(specType);

                var details = roles.Select((r, i) => new NodeTest
                {
                    Node       = i + 1,
                    Role       = r.Name,
                    TestName   = testClass.Name,
                    TypeName   = testClass.Name,
                    MethodName = testCaseDiscoveryMessage.TestCase.TestMethod.Method.Name,
                    SkipReason = testCaseDiscoveryMessage.TestCase.SkipReason,
                }).ToList();

                return(details);
            }
            catch (Exception ex)
            {
                // If something goes wrong with loading test details - just keep going with other tests
                Console.WriteLine($"Failed to load test details for [{testClass.Name}] test class: {ex}");
                return(new List <NodeTest>());
            }
        }
Ejemplo n.º 2
0
        protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
        {
            var testCase = testCaseDiscovered.TestCase;

            if (string.IsNullOrEmpty(testCase.SkipReason) &&
                _filters.Filter(testCase))
            {
                //
                // Get the performance metrics for this method
                //
                var testMethod = testCaseDiscovered.TestMethod;
                List <PerformanceMetricInfo> metrics = new List <PerformanceMetricInfo>();
                foreach (var metricAttr in GetMetricAttributes(testMethod))
                {
                    var discovererAttr = metricAttr.GetCustomAttributes(typeof(PerformanceMetricDiscovererAttribute).AssemblyQualifiedName).First();
                    var discoverer     = GetPerformanceMetricDiscoverer(discovererAttr);
                    metrics.AddRange(discoverer.GetMetrics(metricAttr));
                }

                if (metrics.Count > 0)
                {
                    Tests.Add(new PerformanceTestInfo {
                        Assembly = _assembly, TestCase = testCaseDiscovered.TestCase, Metrics = metrics
                    });
                }
            }

            return(true);
        }
        protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
        {
            var testCase = testCaseDiscovered.TestCase;

            if (string.IsNullOrEmpty(testCase.SkipReason)) /* TODO: Currently there are not filters */
            {
                var testMethod     = testCaseDiscovered.TestMethod;
                var metrics        = new List <PerformanceMetricInfo>();
                var attributesInfo = GetMetricAttributes(testMethod);

                foreach (var attributeInfo in attributesInfo)
                {
                    var assemblyQualifiedAttributeTypeName = typeof(PerformanceMetricDiscovererAttribute).AssemblyQualifiedName;
                    var discovererAttr = attributeInfo.GetCustomAttributes(assemblyQualifiedAttributeTypeName).FirstOrDefault();
                    var discoverer     = GetPerformanceMetricDiscoverer(discovererAttr);
                    metrics.AddRange(discoverer.GetMetrics(attributeInfo));
                }

                if (metrics.Count > 0)
                {
                    Tests.Add(new PerformanceTestMessage
                    {
                        TestCase = testCaseDiscovered.TestCase,
                        Metrics  = metrics
                    });
                }
            }
            return(true);
        }
Ejemplo n.º 4
0
 protected override void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered)
 {
     var testCase = testCaseDiscovered.TestCase;
     if (_testCaseNameSet.Contains(testCase.DisplayName))
     {
         _testCaseList.Add(testCaseDiscovered.TestCase);
     }
 }
        protected override bool Visit(ITestCaseDiscoveryMessage discovery)
        {
            if (filter == null || filter(discovery.TestCase))
            {
                TestCases.Add(discovery.TestCase);
            }

            return(true);
        }
Ejemplo n.º 6
0
 protected override bool Visit(ITestCaseDiscoveryMessage discovery)
 {
     Logger.LogVerbose("Discovered: {0}", discovery.TestCase.Format());
     if (ShouldRunTestCase(discovery.TestCase))
     {
         TestCases.Add(discovery.TestCase);
     }
     return(true);
 }
Ejemplo n.º 7
0
            protected override void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered)
            {
                var testCase = testCaseDiscovered.TestCase;

                if (_testCaseNameSet.Contains(testCase.DisplayName))
                {
                    _testCaseList.Add(testCaseDiscovered.TestCase);
                }
            }
Ejemplo n.º 8
0
            protected override void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered)
            {
                var testCase = testCaseDiscovered.TestCase;

                if (_testCaseUniqueIDSet.Contains(testCase.UniqueID))
                {
                    _testCaseList.Add(testCaseDiscovered.TestCase);
                }
            }
Ejemplo n.º 9
0
            protected override void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered)
            {
                var testCase = testCaseDiscovered.TestCase;
                var testCaseData = new TestCaseData(
                    testCase.DisplayName,
                    testCase.SkipReason,
                    testCaseDiscovered.TestAssembly.Assembly.AssemblyPath,
                    testCase.Traits);

                _writer.Write(TestDataKind.Value);
                _writer.Write(testCaseData);
            }
Ejemplo n.º 10
0
        private NodeTest GetTestDetails(ITestCaseDiscoveryMessage nodeTest)
        {
            var matches = Regex.Match(nodeTest.TestClass.Class.Name, "(.+)([0-9]+)");

            return new NodeTest
            {
                Node = Convert.ToInt32(matches.Groups[2].Value),
                TestName = matches.Groups[1].Value,
                TypeName = nodeTest.TestClass.Class.Name,
                MethodName = nodeTest.TestCase.TestMethod.Method.Name
            };
        }
Ejemplo n.º 11
0
            protected override void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered)
            {
                var testCase     = testCaseDiscovered.TestCase;
                var testCaseData = new TestCaseData(
                    testCase.DisplayName,
                    testCase.SkipReason,
                    testCaseDiscovered.TestAssembly.Assembly.AssemblyPath,
                    testCase.Traits);

                _writer.Write(TestDataKind.Value);
                _writer.Write(testCaseData);
            }
Ejemplo n.º 12
0
        private NodeTest GetTestDetails(ITestCaseDiscoveryMessage nodeTest)
        {
            var matches = Regex.Match(nodeTest.TestClass.Class.Name, "(.+)([0-9]+)");

            return(new NodeTest
            {
                Node = Convert.ToInt32(matches.Groups[2].Value),
                TestName = matches.Groups[1].Value,
                TypeName = nodeTest.TestClass.Class.Name,
                MethodName = nodeTest.TestCase.TestMethod.Method.Name
            });
        }
Ejemplo n.º 13
0
            private bool OnDiscoveryMessage(ITestCaseDiscoveryMessage testCaseDiscovered)
            {
                var testCase = testCaseDiscovered.TestCase;
                var testCaseData = new TestCaseData(
                    testCase.DisplayName,
                    testCaseDiscovered.TestAssembly.Assembly.AssemblyPath,
                    testCase.Traits);

                _writer.Write(TestDataKind.Value);
                _writer.Write(testCaseData);

                return _writer.IsConnected;
            }
Ejemplo n.º 14
0
        protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
        {
            if (testCaseDiscovered.TestCases != null)
            {
                foreach (var testCase in testCaseDiscovered.TestCases)
                {
                    _sink.SendTest(testCase.ToTest());
                }
            }
            else
            {
                _sink.SendTest(testCaseDiscovered.TestCase.ToTest());
            }

            return(base.Visit(testCaseDiscovered));
        }
Ejemplo n.º 15
0
        protected override bool Visit(ITestCaseDiscoveryMessage discovery)
        {
            var testCase  = discovery.TestCase;
            var testClass = $"{testCase.TestMethod.TestClass.Class.Name}.{testCase.TestMethod.Method.Name}";

            if (lastTestClass != testClass)
            {
                SendExistingTestCases();
            }

            lastTestClass = testClass;
            lastTestClassTestCases.Add(testCase);
            TotalTests++;

            return(!cancelThunk());
        }
Ejemplo n.º 16
0
        protected override bool Visit(ITestCaseDiscoveryMessage discovery)
        {
            var    testCase  = discovery.TestCase;
            string testClass = String.Format("{0}.{1}", testCase.Class.Name, testCase.Method.Name);

            if (lastTestClass != testClass)
            {
                SendExistingTestCases();
            }

            lastTestClass = testClass;
            lastTestClassTestCases.Add(testCase);
            TotalTests++;

            return(!cancelThunk());
        }
Ejemplo n.º 17
0
        protected override bool Visit(ITestCaseDiscoveryMessage discovery)
        {
            var name = discovery.TestAssembly.Assembly.AssemblyPath.Split('\\').Last();

            if (!name.Equals(_assemblyName, StringComparison.OrdinalIgnoreCase))
            {
                return(true);
            }

            var testName = discovery.TestClass.Class.Name;

            if (testName.Equals(_className, StringComparison.OrdinalIgnoreCase))
            {
                TestCases.Add(discovery.TestCase);
            }
            return(true);
        }
Ejemplo n.º 18
0
            protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
            {
                var testCase = testCaseDiscovered.TestCase;

                TestCases.Add(new TestCaseViewModel(discoverer.Serialize(testCase), testCase.DisplayName, testCaseDiscovered.TestAssembly.Assembly.AssemblyPath));

                foreach (var k in testCase.Traits.Keys)
                {
                    IList <string> value;
                    if (!Traits.TryGetValue(k, out value))
                    {
                        value     = new List <string>();
                        Traits[k] = value;
                    }

                    value.AddRange(testCase.Traits[k]);
                }

                return(true);
            }
Ejemplo n.º 19
0
        protected override bool Visit(ITestCaseDiscoveryMessage discovery)
        {
            TestCases.Add(discovery.TestCase);

            return(true);
        }
Ejemplo n.º 20
0
        /// <inheritdoc/>
        protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
        {
            TestCases.Add(testCaseDiscovered.TestCase);

            return(true);
        }
Ejemplo n.º 21
0
 /// <summary>
 /// Called when an instance of <see cref="ITestCaseDiscoveryMessage"/> is sent to the message sink.
 /// </summary>
 /// <param name="testCaseDiscovered">The message.</param>
 /// <returns>Return <c>true</c> to continue discovering tests; <c>false</c> otherwise.</returns>
 protected virtual bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
 {
     return(true);
 }
Ejemplo n.º 22
0
        _TestCaseDiscovered AdaptTestCaseDiscoveryMessage(ITestCaseDiscoveryMessage message)
        {
            var testCase = message.TestCase;

            // Clean up the cache
            lock (testUniqueIDsByTestCase)
                testUniqueIDsByTestCase.Remove(testCase);

            var testCollectionUniqueID = UniqueIDForTestCollection(assemblyUniqueID, message.TestCollection);
            var testClassUniqueID      = UniqueIDForTestClass(testCollectionUniqueID, message.TestClass);
            var testMethodUniqueID     = UniqueIDForTestMethod(testClassUniqueID, message.TestMethod);
            var testCaseUniqueID       = testCase.UniqueID;

            string? @namespace = null;
            string? @class     = null;

            var typeName = testCase.TestMethod?.TestClass?.Class.Name;

            if (typeName != null)
            {
                var namespaceIdx = typeName.LastIndexOf('.');
                if (namespaceIdx < 0)
                {
                    @class = typeName;
                }
                else
                {
                    @namespace = typeName.Substring(0, namespaceIdx);
                    @class     = typeName.Substring(namespaceIdx + 1);

                    var innerClassIdx = @class.LastIndexOf('+');
                    if (innerClassIdx >= 0)
                    {
                        @class = @class.Substring(innerClassIdx + 1);
                    }
                }
            }

            var result = new _TestCaseDiscovered
            {
                AssemblyUniqueID       = assemblyUniqueID,
                SkipReason             = testCase.SkipReason,
                SourceFilePath         = testCase.SourceInformation?.FileName,
                SourceLineNumber       = testCase.SourceInformation?.LineNumber,
                TestCaseDisplayName    = testCase.DisplayName,
                TestCaseUniqueID       = testCaseUniqueID,
                TestCollectionUniqueID = testCollectionUniqueID,
                TestClass              = @class,
                TestClassUniqueID      = testClassUniqueID,
                TestClassWithNamespace = typeName,
                TestMethod             = testCase.TestMethod?.Method.Name,
                TestMethodUniqueID     = testMethodUniqueID,
                TestNamespace          = @namespace,
                Traits = testCase.Traits
            };

            if (discoverer != null)
            {
                result.Serialization = discoverer.Serialize(testCase);
            }

            return(result);
        }
Ejemplo n.º 23
0
 protected abstract void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered);
Ejemplo n.º 24
0
 protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
 {
     Calls.Add("ITestCaseDiscoveryMessage");
     return base.Visit(testCaseDiscovered);
 }
 protected abstract void OnTestDiscovered(ITestCaseDiscoveryMessage testCaseDiscovered);
Ejemplo n.º 26
0
 protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
 {
     Calls.Add("ITestCaseDiscoveryMessage");
     return(base.Visit(testCaseDiscovered));
 }
Ejemplo n.º 27
0
 protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered)
 {
     _testHandler(testCaseDiscovered);
     return(true);
 }