Esempio n. 1
0
        public static FakeTestResult FromReal(ITestResult result)
        {
            FakeTestResult fakeTestResult = default;

            fakeTestResult.ResultState.Status = result.ResultState.Status;
            fakeTestResult.ResultState.Label  = result.ResultState.Label;
            fakeTestResult.ResultState.Site   = result.ResultState.Site;
            fakeTestResult.Name              = result.Name;
            fakeTestResult.FullName          = result.FullName;
            fakeTestResult.Duration          = result.Duration;
            fakeTestResult.StartTime         = result.StartTime;
            fakeTestResult.EndTime           = result.EndTime;
            fakeTestResult.Message           = result.Message;
            fakeTestResult.StackTrace        = result.StackTrace;
            fakeTestResult.TotalCount        = result.TotalCount;
            fakeTestResult.AssertCount       = result.AssertCount;
            fakeTestResult.FailCount         = result.FailCount;
            fakeTestResult.WarningCount      = result.WarningCount;
            fakeTestResult.PassCount         = result.PassCount;
            fakeTestResult.SkipCount         = result.SkipCount;
            fakeTestResult.InconclusiveCount = result.InconclusiveCount;
            fakeTestResult.Output            = result.Output;
            fakeTestResult.AssertionResults  = result.AssertionResults.Select(x => new FakeTestResultAssertionResult
            {
                Status     = x.Status,
                Message    = x.Message,
                StackTrace = x.StackTrace,
            }).ToList();
            return(fakeTestResult);
        }
Esempio n. 2
0
        static int Main(string[] args)
        {
            InChildProcess = true;

            // Terminate this process if the parent exits.
            Task.Run(() =>
            {
                try
                {
                    using (var pipeSense = new AnonymousPipeClientStream(PipeDirection.In, args[1]))
                    {
                        while (pipeSense.ReadByte() >= 0)
                        {
                            ;
                        }
                    }
                }
                finally
                {
                    Environment.Exit(5);
                }
            });

            using var pipeClient = new AnonymousPipeClientStream(PipeDirection.Out, args[0]);

            string assemblyPath = args[2];
            string typeName     = args[3];
            string methodName   = args[4];

            Assembly asm = Assembly.LoadFrom(assemblyPath !);

            Assert.NotNull(asm);

            MethodInfo?methodInfo = asm.GetType(typeName)?.GetMethod(methodName);

            Assert.NotNull(asm);

            var runner = new NUnitTestAssemblyRunner(new DefaultTestAssemblyBuilder());

            runner.Load(asm, new Dictionary <string, object>());

            var result = runner.Run(TestListener.NULL, new SpecificTestFilter {
                TheMethod = methodInfo
            });

            while (result.HasChildren)
            {
                result = result.Children.Single();
            }

            // If nothing was tested, don't output the empty success result.
            if (result == null || result.Test?.Method?.MethodInfo != methodInfo)
            {
                return(1);
            }

            XmlSerializer xmlserializer = new(typeof(FakeTestResult));

            XmlWriterSettings settings = new();

            using (XmlWriter writer = XmlWriter.Create(pipeClient, settings))
            {
                xmlserializer.Serialize(writer, FakeTestResult.FromReal(result));
            }

            return(0);
        }