示例#1
0
        public void CanOverrideCause(FailureCause cause)
        {
            var failed = new _TestFailed {
                Cause = cause
            };

            Assert.Equal(cause, failed.Cause);
        }
示例#2
0
        /// <inheritdoc/>
        public bool OnMessage(_MessageSinkMessage message)
        {
            Guard.ArgumentNotNull(nameof(message), message);

            if (message is _TestSkipped testSkipped)
            {
                var testFailed = new _TestFailed
                {
                    AssemblyUniqueID       = testSkipped.AssemblyUniqueID,
                    ExceptionParentIndices = new[] { -1 },
                    ExceptionTypes         = new[] { "FAIL_SKIP" },
                    ExecutionTime          = 0m,
                    Messages               = new[] { testSkipped.Reason },
                    Output                 = "",
                    StackTraces            = new[] { "" },
                    TestCaseUniqueID       = testSkipped.TestCaseUniqueID,
                    TestClassUniqueID      = testSkipped.TestClassUniqueID,
                    TestCollectionUniqueID = testSkipped.TestCollectionUniqueID,
                    TestMethodUniqueID     = testSkipped.TestMethodUniqueID,
                    TestUniqueID           = testSkipped.TestUniqueID
                };

                return(innerSink.OnMessage(testFailed));
            }

            // TODO: Shouldn't there be conversions of all the finished messages up the stack, to rectify the counts?

            if (message is _TestCollectionFinished testCollectionFinished)
            {
                testCollectionFinished = new _TestCollectionFinished
                {
                    AssemblyUniqueID       = testCollectionFinished.AssemblyUniqueID,
                    ExecutionTime          = testCollectionFinished.ExecutionTime,
                    TestCollectionUniqueID = testCollectionFinished.TestCollectionUniqueID,
                    TestsFailed            = testCollectionFinished.TestsFailed + testCollectionFinished.TestsSkipped,
                    TestsRun     = testCollectionFinished.TestsRun,
                    TestsSkipped = 0
                };

                return(innerSink.OnMessage(testCollectionFinished));
            }

            if (message is _TestAssemblyFinished assemblyFinished)
            {
                assemblyFinished = new _TestAssemblyFinished
                {
                    AssemblyUniqueID = assemblyFinished.AssemblyUniqueID,
                    ExecutionTime    = assemblyFinished.ExecutionTime,
                    TestsFailed      = assemblyFinished.TestsFailed + assemblyFinished.TestsSkipped,
                    TestsRun         = assemblyFinished.TestsRun,
                    TestsSkipped     = 0
                };

                return(innerSink.OnMessage(assemblyFinished));
            }

            return(innerSink.OnMessage(message));
        }
示例#3
0
 internal TestFailedWithDisplayName(
     _TestFailed testFailed,
     string testDisplayName)
 {
     AssemblyUniqueID       = testFailed.AssemblyUniqueID;
     Cause                  = testFailed.Cause;
     ExceptionParentIndices = testFailed.ExceptionParentIndices;
     ExceptionTypes         = testFailed.ExceptionTypes;
     ExecutionTime          = testFailed.ExecutionTime;
     Messages               = testFailed.Messages;
     Output                 = testFailed.Output;
     StackTraces            = testFailed.StackTraces;
     TestCaseUniqueID       = testFailed.TestCaseUniqueID;
     TestClassUniqueID      = testFailed.TestClassUniqueID;
     TestCollectionUniqueID = testFailed.TestCollectionUniqueID;
     TestDisplayName        = testDisplayName;
     TestMethodUniqueID     = testFailed.TestMethodUniqueID;
     TestUniqueID           = testFailed.TestUniqueID;
 }
示例#4
0
    /// <summary/>
    public static RunSummary FailTestCases(
        IReadOnlyCollection <_ITestCase> testCases,
        IMessageBus messageBus,
        string messageFormat)
    {
        var result = new RunSummary();

        foreach (var testCase in testCases)
        {
            var assemblyUniqueID = testCase.TestCollection.TestAssembly.UniqueID;
            var testUniqueID     = UniqueIDGenerator.ForTest(testCase.UniqueID, -1);

            var caseStarting = new _TestCaseStarting
            {
                AssemblyUniqueID           = assemblyUniqueID,
                SkipReason                 = testCase.SkipReason,
                SourceFilePath             = testCase.SourceFilePath,
                SourceLineNumber           = testCase.SourceLineNumber,
                TestCaseDisplayName        = testCase.TestCaseDisplayName,
                TestCaseUniqueID           = testCase.UniqueID,
                TestClassName              = testCase.TestClassName,
                TestClassNamespace         = testCase.TestClassNamespace,
                TestClassNameWithNamespace = testCase.TestClassNameWithNamespace,
                TestClassUniqueID          = testCase.TestClass?.UniqueID,
                TestCollectionUniqueID     = testCase.TestCollection.UniqueID,
                TestMethodName             = testCase.TestMethod?.Method.Name,
                TestMethodUniqueID         = testCase.TestMethod?.UniqueID,
                Traits = testCase.Traits
            };
            messageBus.QueueMessage(caseStarting);

            var testStarting = new _TestStarting
            {
                AssemblyUniqueID       = assemblyUniqueID,
                TestCaseUniqueID       = testCase.UniqueID,
                TestClassUniqueID      = testCase.TestClass?.UniqueID,
                TestCollectionUniqueID = testCase.TestCollection.UniqueID,
                TestDisplayName        = testCase.TestCaseDisplayName,
                TestMethodUniqueID     = testCase.TestMethod?.UniqueID,
                TestUniqueID           = testUniqueID
            };
            messageBus.QueueMessage(testStarting);

            var failed = new _TestFailed
            {
                AssemblyUniqueID       = assemblyUniqueID,
                Cause                  = FailureCause.Exception,
                ExceptionParentIndices = new[] { -1 },
                ExceptionTypes         = new string?[] { null },
                ExecutionTime          = 0m,
                Messages               = new[] { string.Format(messageFormat, testCase.TestCaseDisplayName) },
                Output                 = string.Empty,
                StackTraces            = new string?[] { null },
                TestCaseUniqueID       = testCase.UniqueID,
                TestClassUniqueID      = testCase.TestClass?.UniqueID,
                TestCollectionUniqueID = testCase.TestCollection.UniqueID,
                TestMethodUniqueID     = testCase.TestMethod?.UniqueID,
                TestUniqueID           = testUniqueID
            };
            messageBus.QueueMessage(failed);

            var testFinished = new _TestFinished
            {
                AssemblyUniqueID       = assemblyUniqueID,
                ExecutionTime          = 0m,
                Output                 = string.Empty,
                TestCaseUniqueID       = testCase.UniqueID,
                TestClassUniqueID      = testCase.TestClass?.UniqueID,
                TestCollectionUniqueID = testCase.TestCollection.UniqueID,
                TestMethodUniqueID     = testCase.TestMethod?.UniqueID,
                TestUniqueID           = testUniqueID
            };
            messageBus.QueueMessage(testFinished);

            var caseFinished = new _TestCaseFinished
            {
                AssemblyUniqueID       = assemblyUniqueID,
                ExecutionTime          = 0m,
                TestCaseUniqueID       = testCase.UniqueID,
                TestClassUniqueID      = testCase.TestClass?.UniqueID,
                TestCollectionUniqueID = testCase.TestCollection.UniqueID,
                TestMethodUniqueID     = testCase.TestMethod?.UniqueID,
                TestsFailed            = 1,
                TestsRun     = 1,
                TestsSkipped = 0
            };
            messageBus.QueueMessage(caseFinished);

            result.Total++;
            result.Failed++;
        }

        return(result);
    }
示例#5
0
        public void DefaultFailureCauseIsException()
        {
            var failed = new _TestFailed();

            Assert.Equal(FailureCause.Exception, failed.Cause);
        }